Interface Bulk Import

1,573 views
Skip to first unread message

Alex Zetaeffesse

unread,
Aug 10, 2020, 11:35:15 AM8/10/20
to NetBox
Hi there,

I'm struggling at discover which values are accepted by "Interface Bulk Import ".

https://netbox.server.local/dcim/interfaces/import/

Especially the type of the interface.
I cannot even add a single element from which I might gues them.
Based on this experience I raised a featured request 4976..

Thanks in advance for your help,

Alex

Brian Candler

unread,
Aug 10, 2020, 12:30:51 PM8/10/20
to NetBox
Assuming you are using a recent version (2.8+) you can get a full list by making an OPTIONS query to the API.

(The authorization header may not be needed if you have not enabled API authentication)

curl -Ss -H "authorization: Token XXXXXXXX" -X OPTIONS https://netbox.server.local/api/dcim/interfaces/ | python3 -m json.tool

{
    "name": "Interface",
    "description": "",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "id": {
                "type": "integer",
                "required": false,
                "read_only": true,
                "label": "ID"
            },
            "device": {
                "type": "nested object",
                "required": true,
                "read_only": false,
                "label": "Device",
                "children": {
                    "id": {
                        "type": "integer",
                        "required": false,
                        "read_only": true,
                        "label": "ID"
                    },
                    "url": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Url"
                    },
                    "name": {
                        "type": "string",
                        "required": false,
                        "read_only": false,
                        "label": "Name",
                        "max_length": 64
                    },
                    "display_name": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Display name"
                    }
                }
            },
            "name": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Name",
                "max_length": 64
            },
            "type": {
                "type": "field",
                "required": true,
                "read_only": false,
                "label": "Type",
                "choices": [
                    {
                        "value": "virtual",
                        "display_name": "Virtual"
                    },
                    {
                        "value": "lag",
                        "display_name": "Link Aggregation Group (LAG)"
                    },
                    {
                        "value": "100base-tx",
                        "display_name": "100BASE-TX (10/100ME)"
                    },
                    {
                        "value": "1000base-t",
                        "display_name": "1000BASE-T (1GE)"
                    },
                    {
                        "value": "2.5gbase-t",
                        "display_name": "2.5GBASE-T (2.5GE)"
                    },
                    {
                        "value": "5gbase-t",
                        "display_name": "5GBASE-T (5GE)"
                    },
                    {
                        "value": "10gbase-t",
                        "display_name": "10GBASE-T (10GE)"
                    },
                    {
                        "value": "10gbase-cx4",
                        "display_name": "10GBASE-CX4 (10GE)"
                    },
                    {
                        "value": "1000base-x-gbic",
                        "display_name": "GBIC (1GE)"
                    },
                    {
                        "value": "1000base-x-sfp",
                        "display_name": "SFP (1GE)"
                    },
                    {
                        "value": "10gbase-x-sfpp",
                        "display_name": "SFP+ (10GE)"
                    },
                    {
                        "value": "10gbase-x-xfp",
                        "display_name": "XFP (10GE)"
                    },
                    {
                        "value": "10gbase-x-xenpak",
                        "display_name": "XENPAK (10GE)"
                    },
                    {
                        "value": "10gbase-x-x2",
                        "display_name": "X2 (10GE)"
                    },
                    {
                        "value": "25gbase-x-sfp28",
                        "display_name": "SFP28 (25GE)"
                    },
                    {
                        "value": "40gbase-x-qsfpp",
                        "display_name": "QSFP+ (40GE)"
                    },
                    {
                        "value": "50gbase-x-sfp28",
                        "display_name": "QSFP28 (50GE)"
                    },
                    {
                        "value": "100gbase-x-cfp",
                        "display_name": "CFP (100GE)"
                    },
                    {
                        "value": "100gbase-x-cfp2",
                        "display_name": "CFP2 (100GE)"
                    },
                    {
                        "value": "200gbase-x-cfp2",
                        "display_name": "CFP2 (200GE)"
                    },
                    {
                        "value": "100gbase-x-cfp4",
                        "display_name": "CFP4 (100GE)"
                    },
                    {
                        "value": "100gbase-x-cpak",
                        "display_name": "Cisco CPAK (100GE)"
                    },
                    {
                        "value": "100gbase-x-qsfp28",
                        "display_name": "QSFP28 (100GE)"
                    },
                    {
                        "value": "200gbase-x-qsfp56",
                        "display_name": "QSFP56 (200GE)"
                    },
                    {
                        "value": "400gbase-x-qsfpdd",
                        "display_name": "QSFP-DD (400GE)"
                    },
                    {
                        "value": "400gbase-x-osfp",
                        "display_name": "OSFP (400GE)"
                    },
                    {
                        "value": "ieee802.11a",
                        "display_name": "IEEE 802.11a"
                    },
                    {
                        "value": "ieee802.11g",
                        "display_name": "IEEE 802.11b/g"
                    },
                    {
                        "value": "ieee802.11n",
                        "display_name": "IEEE 802.11n"
                    },
                    {
                        "value": "ieee802.11ac",
                        "display_name": "IEEE 802.11ac"
                    },
                    {
                        "value": "ieee802.11ad",
                        "display_name": "IEEE 802.11ad"
                    },
                    {
                        "value": "ieee802.11ax",
                        "display_name": "IEEE 802.11ax"
                    },
                    {
                        "value": "gsm",
                        "display_name": "GSM"
                    },
                    {
                        "value": "cdma",
                        "display_name": "CDMA"
                    },
                    {
                        "value": "lte",
                        "display_name": "LTE"
                    },
                    {
                        "value": "sonet-oc3",
                        "display_name": "OC-3/STM-1"
                    },
                    {
                        "value": "sonet-oc12",
                        "display_name": "OC-12/STM-4"
                    },
                    {
                        "value": "sonet-oc48",
                        "display_name": "OC-48/STM-16"
                    },
                    {
                        "value": "sonet-oc192",
                        "display_name": "OC-192/STM-64"
                    },
                    {
                        "value": "sonet-oc768",
                        "display_name": "OC-768/STM-256"
                    },
                    {
                        "value": "sonet-oc1920",
                        "display_name": "OC-1920/STM-640"
                    },
                    {
                        "value": "sonet-oc3840",
                        "display_name": "OC-3840/STM-1234"
                    },
                    {
                        "value": "1gfc-sfp",
                        "display_name": "SFP (1GFC)"
                    },
                    {
                        "value": "2gfc-sfp",
                        "display_name": "SFP (2GFC)"
                    },
                    {
                        "value": "4gfc-sfp",
                        "display_name": "SFP (4GFC)"
                    },
                    {
                        "value": "8gfc-sfpp",
                        "display_name": "SFP+ (8GFC)"
                    },
                    {
                        "value": "16gfc-sfpp",
                        "display_name": "SFP+ (16GFC)"
                    },
                    {
                        "value": "32gfc-sfp28",
                        "display_name": "SFP28 (32GFC)"
                    },
                    {
                        "value": "128gfc-sfp28",
                        "display_name": "QSFP28 (128GFC)"
                    },
                    {
                        "value": "infiniband-sdr",
                        "display_name": "SDR (2 Gbps)"
                    },
                    {
                        "value": "infiniband-ddr",
                        "display_name": "DDR (4 Gbps)"
                    },
                    {
                        "value": "infiniband-qdr",
                        "display_name": "QDR (8 Gbps)"
                    },
                    {
                        "value": "infiniband-fdr10",
                        "display_name": "FDR10 (10 Gbps)"
                    },
                    {
                        "value": "infiniband-fdr",
                        "display_name": "FDR (13.5 Gbps)"
                    },
                    {
                        "value": "infiniband-edr",
                        "display_name": "EDR (25 Gbps)"
                    },
                    {
                        "value": "infiniband-hdr",
                        "display_name": "HDR (50 Gbps)"
                    },
                    {
                        "value": "infiniband-ndr",
                        "display_name": "NDR (100 Gbps)"
                    },
                    {
                        "value": "infiniband-xdr",
                        "display_name": "XDR (250 Gbps)"
                    },
                    {
                        "value": "t1",
                        "display_name": "T1 (1.544 Mbps)"
                    },
                    {
                        "value": "e1",
                        "display_name": "E1 (2.048 Mbps)"
                    },
                    {
                        "value": "t3",
                        "display_name": "T3 (45 Mbps)"
                    },
                    {
                        "value": "e3",
                        "display_name": "E3 (34 Mbps)"
                    },
                    {
                        "value": "cisco-stackwise",
                        "display_name": "Cisco StackWise"
                    },
                    {
                        "value": "cisco-stackwise-plus",
                        "display_name": "Cisco StackWise Plus"
                    },
                    {
                        "value": "cisco-flexstack",
                        "display_name": "Cisco FlexStack"
                    },
                    {
                        "value": "cisco-flexstack-plus",
                        "display_name": "Cisco FlexStack Plus"
                    },
                    {
                        "value": "juniper-vcp",
                        "display_name": "Juniper VCP"
                    },
                    {
                        "value": "extreme-summitstack",
                        "display_name": "Extreme SummitStack"
                    },
                    {
                        "value": "extreme-summitstack-128",
                        "display_name": "Extreme SummitStack-128"
                    },
                    {
                        "value": "extreme-summitstack-256",
                        "display_name": "Extreme SummitStack-256"
                    },
                    {
                        "value": "extreme-summitstack-512",
                        "display_name": "Extreme SummitStack-512"
                    },
                    {
                        "value": "other",
                        "display_name": "Other"
                    }
                ]
            },
            "enabled": {
                "type": "boolean",
                "required": false,
                "read_only": false,
                "label": "Enabled"
            },
            "lag": {
                "type": "nested object",
                "required": false,
                "read_only": false,
                "label": "Lag",
                "children": {
                    "id": {
                        "type": "integer",
                        "required": false,
                        "read_only": true,
                        "label": "ID"
                    },
                    "url": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Url"
                    },
                    "device": {
                        "type": "nested object",
                        "required": false,
                        "read_only": true,
                        "label": "Device",
                        "children": {
                            "id": {
                                "type": "integer",
                                "required": false,
                                "read_only": true,
                                "label": "ID"
                            },
                            "url": {
                                "type": "field",
                                "required": false,
                                "read_only": true,
                                "label": "Url"
                            },
                            "name": {
                                "type": "string",
                                "required": false,
                                "read_only": false,
                                "label": "Name",
                                "max_length": 64
                            },
                            "display_name": {
                                "type": "field",
                                "required": false,
                                "read_only": true,
                                "label": "Display name"
                            }
                        }
                    },
                    "name": {
                        "type": "string",
                        "required": true,
                        "read_only": false,
                        "label": "Name",
                        "max_length": 64
                    },
                    "cable": {
                        "type": "field",
                        "required": false,
                        "read_only": false,
                        "label": "Cable"
                    },
                    "connection_status": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Connection status"
                    }
                }
            },
            "mtu": {
                "type": "integer",
                "required": false,
                "read_only": false,
                "label": "MTU",
                "min_value": 1,
                "max_value": 65536
            },
            "mac_address": {
                "type": "field",
                "required": false,
                "read_only": false,
                "label": "MAC Address"
            },
            "mgmt_only": {
                "type": "boolean",
                "required": false,
                "read_only": false,
                "label": "OOB Management",
                "help_text": "This interface is used only for out-of-band management"
            },
            "description": {
                "type": "string",
                "required": false,
                "read_only": false,
                "label": "Description",
                "max_length": 200
            },
            "connected_endpoint_type": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Connected endpoint type"
            },
            "connected_endpoint": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Connected endpoint"
            },
            "connection_status": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Connection status"
            },
            "cable": {
                "type": "nested object",
                "required": false,
                "read_only": true,
                "label": "Cable",
                "children": {
                    "id": {
                        "type": "integer",
                        "required": false,
                        "read_only": true,
                        "label": "ID"
                    },
                    "url": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Url"
                    },
                    "label": {
                        "type": "string",
                        "required": false,
                        "read_only": false,
                        "label": "Label",
                        "max_length": 100
                    }
                }
            },
            "mode": {
                "type": "field",
                "required": false,
                "read_only": false,
                "label": "Mode",
                "choices": [
                    {
                        "value": "access",
                        "display_name": "Access"
                    },
                    {
                        "value": "tagged",
                        "display_name": "Tagged"
                    },
                    {
                        "value": "tagged-all",
                        "display_name": "Tagged (All)"
                    }
                ]
            },
            "untagged_vlan": {
                "type": "nested object",
                "required": false,
                "read_only": false,
                "label": "Untagged vlan",
                "children": {
                    "id": {
                        "type": "integer",
                        "required": false,
                        "read_only": true,
                        "label": "ID"
                    },
                    "url": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Url"
                    },
                    "vid": {
                        "type": "integer",
                        "required": true,
                        "read_only": false,
                        "label": "ID",
                        "min_value": 1,
                        "max_value": 4094
                    },
                    "name": {
                        "type": "string",
                        "required": true,
                        "read_only": false,
                        "label": "Name",
                        "max_length": 64
                    },
                    "display_name": {
                        "type": "field",
                        "required": false,
                        "read_only": true,
                        "label": "Display name"
                    }
                }
            },
            "tagged_vlans": {
                "type": "field",
                "required": false,
                "read_only": false,
                "label": "Tagged vlans"
            },
            "tags": {
                "type": "field",
                "required": false,
                "read_only": false,
                "label": "Tags",
                "child": {
                    "type": "string",
                    "required": true,
                    "read_only": false
                }
            },
            "count_ipaddresses": {
                "type": "integer",
                "required": false,
                "read_only": true,
                "label": "Count ipaddresses"
            }
        }
    }
}

Alex Zetaeffesse

unread,
Aug 10, 2020, 12:34:10 PM8/10/20
to NetBox
Many many thanks Brian,

I can now proceed with populating NetBox but for usability such values should be available to the user in a simpler manner.
Especially if we want NetBox to be srpread in term of use.
Hopefully the feature request I raised will be taken into consideration.

Regards,

Alex

Alex Zetaeffesse

unread,
Aug 11, 2020, 6:39:22 AM8/11/20
to NetBox
...
 
Many many thanks Brian,

I can now proceed with populating NetBox but for usability such values should be available to the user in a simpler manner.
Especially if we want NetBox to be srpread in term of use.
Hopefully the feature request I raised will be taken into consideration.

Regards,

Alex

Hi Brian,

unfortunately I am facing some errors and I don't know how to fix them.

image.png

The device BASW01_0 is defined, "virtual" is one of the values that should be accepted (following the output you gave me) and g0 is just a name hence I have full freedom in choosing it.
Yet is not accepted.
Would you have a hint on why?

The exemple above is just a test because I failed at importing a CSV and now I am trying to understand what are the right values for each field.

Regards,

Alex 

Brian Candler

unread,
Aug 11, 2020, 8:11:46 AM8/11/20
to NetBox
It works if you enter the display_name, which is "Virtual" with a capital V, rather than the API/database value.

It would likely be better to use the API values.  I suspect this behaviour dates from early days, when the API values were numeric constants.
Reply all
Reply to author
Forward
0 new messages