From 60ddadab0aff614adb7ddcb9ca1edb74b9852ef5 Mon Sep 17 00:00:00 2001 From: "apdibbo@clearskies.it" Date: Wed, 9 Aug 2023 10:54:06 +0100 Subject: [PATCH 1/5] Initial commit of first draft of tool --- simple-bulk-import/Readme.txt | 5 ++ simple-bulk-import/netbox_import_gen.py | 101 ++++++++++++++++++++++++ simple-bulk-import/raw-csv.csv | 16 ++++ 3 files changed, 122 insertions(+) create mode 100644 simple-bulk-import/Readme.txt create mode 100644 simple-bulk-import/netbox_import_gen.py create mode 100644 simple-bulk-import/raw-csv.csv diff --git a/simple-bulk-import/Readme.txt b/simple-bulk-import/Readme.txt new file mode 100644 index 0000000..ddbe1e6 --- /dev/null +++ b/simple-bulk-import/Readme.txt @@ -0,0 +1,5 @@ +This tool takes a CSV of data in an easily collectible format and breaks it down into individual json files for import into Netbox + +./netbox_import_gen.py raw-csv.csv + +An example csv file is provided here \ No newline at end of file diff --git a/simple-bulk-import/netbox_import_gen.py b/simple-bulk-import/netbox_import_gen.py new file mode 100644 index 0000000..bd723f1 --- /dev/null +++ b/simple-bulk-import/netbox_import_gen.py @@ -0,0 +1,101 @@ +#!/usr/bin/python3 + +import csv +import sys +import json + +rawcsvpath = sys.argv[1] + +hostdict = csv.DictReader(open(rawcsvpath), delimiter=",") + +#create device list +devicetypes = [] +devices = [] +interfaces = [] +ips = [] +for importee in hostdict: + print(importee) + + # Create Device Type + devicetype = {} + devicetype["manufacturer"] = importee["Manufacturer"] + devicetype["model"] = importee["Device Type"] + devicetype["slud"] = importee["Device Type"] + devicetype["u_height"] = importee["Rack Units"] + devicetypes.append(devicetype) + + # Create Device + device = {} + device["tenant"] = importee["Tenant"] + device["device_role"] = importee["Role"] + device["manufacturer"] = importee["Vendor"] + device["device_type"] = importee["Device Type"] + device["status"] = importee["Status"] + device["site"] = importee["Site"] + device["location"] = importee["Location"] + device["rack"] = importee["Rack"] + device["face"] = importee["face"] + device["airflow"] = importee["airflow"] + device["position"] = importee["Rack Position"] + device["name"] = importee["FQDN"] + device["serial"] = importee["Serial"] + devices.append(device) + + # Create BMC Interface + bmcinterface = {} + bmcinterface["enabled"] = "TRUE" + bmcinterface["mgmt_only"] = "TRUE" + bmcinterface["type"] = "1000base-t" + bmcinterface["name"] = "bmc0" + bmcinterface["device"] = importee["FQDN"] + bmcinterface["mac_address"] = importee["BMC MAC"] + interfaces.append(bmcinterface) + + # Create First Eth interface + ethinterface = {} + ethinterface["enabled"] = "TRUE" + ethinterface["mgmt_only"] = "False" + ethinterface["type"] = importee["NIC 1 Type"] + ethinterface["name"] = importee["NIC 1 Name"] + ethinterface["device"] = importee["FQDN"] + ethinterface["mac_address"] = importee["NIC 1 MAC"] + interfaces.append(ethinterface) + + # Create BMC IP + bmcip = {} + bmcip["address"] = importee["BMC IP"] + bmcip["status"] = "active" + bmcip["tenant"] = importee["Tenant"] + bmcip["interface"] = "bmc0" + bmcip["device"] = importee["FQDN"] + ips.append(bmcip) + + # Create First Eth IP + ethip = {} + ethip["address"] = importee["NIC 1 IP"] + ethip["status"] = "active" + ethip["tenant"] = importee["Tenant"] + ethip["interface"] = importee["NIC 1 Name"] + ethip["device"] = importee["FQDN"] + ips.append(ethip) + +#print(devicetypes) +#print(devices) +#print(interfaces) +#print(ips) + +# Output device types json file +with open("devicetypes.json","w") as outfile: + outfile.write(json.dumps(devicetypes)) + +# Output devices json file +with open("devices.json","w") as outfile: + outfile.write(json.dumps(devices)) + +# Output Interfaces json file +with open("interfaces.json","w") as outfile: + outfile.write(json.dumps(interfaces)) + +# Output IPs json file +with open("ips.json","w") as outfile: + outfile.write(json.dumps(ips)) diff --git a/simple-bulk-import/raw-csv.csv b/simple-bulk-import/raw-csv.csv new file mode 100644 index 0000000..ad0913b --- /dev/null +++ b/simple-bulk-import/raw-csv.csv @@ -0,0 +1,16 @@ +Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,FQDN,BMC MAC,BMC IP,Serial,NIC 2 MAC,password +,,,,,,,,,,,,,,,,,,,,,, +Lenovo,,,,,,419,32,1,hv-2022-lenovo,Lenovo,,,,,,,hv900.nubes.rl.ac.uk,,10.1.28.1,,, +Lenovo,,,,,,419,31,1,hv-2022-lenovo,Lenovo,,,,,,,hv901.nubes.rl.ac.uk,,10.1.28.2,,, +Lenovo,,,,,,419,30,1,hv-2022-lenovo,Lenovo,,,,,,,hv902.nubes.rl.ac.uk,,10.1.28.3,,, +Lenovo,,,,,,419,29,1,hv-2022-lenovo,Lenovo,,,,,,,hv903.nubes.rl.ac.uk,,10.1.28.4,,, +Lenovo,,,,,,419,28,1,hv-2022-lenovo,Lenovo,,,,,,,hv904.nubes.rl.ac.uk,,10.1.28.5,,, +Lenovo,,,,,,419,27,1,hv-2022-lenovo,Lenovo,,,,,,,hv905.nubes.rl.ac.uk,,10.1.28.6,,, +Lenovo,,,,,,419,26,1,hv-2022-lenovo,Lenovo,,,,,,,hv906.nubes.rl.ac.uk,,10.1.28.7,,, +Lenovo,,,,,,419,25,1,hv-2022-lenovo,Lenovo,,,,,,,hv907.nubes.rl.ac.uk,,10.1.28.8,,, +Lenovo,,,,,,419,24,1,hv-2022-lenovo,Lenovo,,,,,,,hv908.nubes.rl.ac.uk,,10.1.28.9,,, +Lenovo,,,,,,419,23,1,hv-2022-lenovo,Lenovo,,,,,,,hv909.nubes.rl.ac.uk,,10.1.28.10,,, +Lenovo,,,,,,419,22,1,hv-2022-lenovo,Lenovo,,,,,,,hv910.nubes.rl.ac.uk,,10.1.28.11,,, +Lenovo,,,,,,419,21,1,hv-2022-lenovo,Lenovo,,,,,,,hv911.nubes.rl.ac.uk,,10.1.28.12,,, +Lenovo,,,,,,419,20,1,hv-2022-lenovo,Lenovo,,,,,,,hv912.nubes.rl.ac.uk,,10.1.28.13,,, +Lenovo,,,,,,419,19,1,hv-2022-lenovo,Lenovo,,,,,,,hv913.nubes.rl.ac.uk,,10.1.28.14,,, From cd57cf4c26dd462f639055e97ed8490e5696d9f8 Mon Sep 17 00:00:00 2001 From: "apdibbo@clearskies.it" Date: Wed, 9 Aug 2023 11:42:34 +0100 Subject: [PATCH 2/5] Trim Lint Undo failed de lint --- simple-bulk-import/netbox_import_gen.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/simple-bulk-import/netbox_import_gen.py b/simple-bulk-import/netbox_import_gen.py index bd723f1..9fd07a1 100644 --- a/simple-bulk-import/netbox_import_gen.py +++ b/simple-bulk-import/netbox_import_gen.py @@ -85,17 +85,17 @@ #print(ips) # Output device types json file -with open("devicetypes.json","w") as outfile: +with open("devicetypes.json","w", encoding="utf-8") as outfile: outfile.write(json.dumps(devicetypes)) # Output devices json file -with open("devices.json","w") as outfile: +with open("devices.json","w", encoding="utf-8") as outfile: outfile.write(json.dumps(devices)) # Output Interfaces json file -with open("interfaces.json","w") as outfile: +with open("interfaces.json","w", encoding="utf-8") as outfile: outfile.write(json.dumps(interfaces)) # Output IPs json file -with open("ips.json","w") as outfile: +with open("ips.json","w", encoding="utf-8") as outfile: outfile.write(json.dumps(ips)) From c17ac63ff74adce894936e320cdd92f9faa2d9bb Mon Sep 17 00:00:00 2001 From: "apdibbo@clearskies.it" Date: Wed, 16 Aug 2023 08:52:33 +0100 Subject: [PATCH 3/5] Add handling of vrfs --- simple-bulk-import/netbox_import_gen.py | 2 ++ simple-bulk-import/raw-csv.csv | 32 ++++++++++++------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/simple-bulk-import/netbox_import_gen.py b/simple-bulk-import/netbox_import_gen.py index 9fd07a1..0312a7d 100644 --- a/simple-bulk-import/netbox_import_gen.py +++ b/simple-bulk-import/netbox_import_gen.py @@ -48,6 +48,7 @@ bmcinterface["type"] = "1000base-t" bmcinterface["name"] = "bmc0" bmcinterface["device"] = importee["FQDN"] + bmcinterface["vrf"] = importee["BMC VRF"] bmcinterface["mac_address"] = importee["BMC MAC"] interfaces.append(bmcinterface) @@ -58,6 +59,7 @@ ethinterface["type"] = importee["NIC 1 Type"] ethinterface["name"] = importee["NIC 1 Name"] ethinterface["device"] = importee["FQDN"] + ethinterface["vrf"] = importee["NIC 1 VRF"] ethinterface["mac_address"] = importee["NIC 1 MAC"] interfaces.append(ethinterface) diff --git a/simple-bulk-import/raw-csv.csv b/simple-bulk-import/raw-csv.csv index ad0913b..2a275e3 100644 --- a/simple-bulk-import/raw-csv.csv +++ b/simple-bulk-import/raw-csv.csv @@ -1,16 +1,16 @@ -Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,FQDN,BMC MAC,BMC IP,Serial,NIC 2 MAC,password -,,,,,,,,,,,,,,,,,,,,,, -Lenovo,,,,,,419,32,1,hv-2022-lenovo,Lenovo,,,,,,,hv900.nubes.rl.ac.uk,,10.1.28.1,,, -Lenovo,,,,,,419,31,1,hv-2022-lenovo,Lenovo,,,,,,,hv901.nubes.rl.ac.uk,,10.1.28.2,,, -Lenovo,,,,,,419,30,1,hv-2022-lenovo,Lenovo,,,,,,,hv902.nubes.rl.ac.uk,,10.1.28.3,,, -Lenovo,,,,,,419,29,1,hv-2022-lenovo,Lenovo,,,,,,,hv903.nubes.rl.ac.uk,,10.1.28.4,,, -Lenovo,,,,,,419,28,1,hv-2022-lenovo,Lenovo,,,,,,,hv904.nubes.rl.ac.uk,,10.1.28.5,,, -Lenovo,,,,,,419,27,1,hv-2022-lenovo,Lenovo,,,,,,,hv905.nubes.rl.ac.uk,,10.1.28.6,,, -Lenovo,,,,,,419,26,1,hv-2022-lenovo,Lenovo,,,,,,,hv906.nubes.rl.ac.uk,,10.1.28.7,,, -Lenovo,,,,,,419,25,1,hv-2022-lenovo,Lenovo,,,,,,,hv907.nubes.rl.ac.uk,,10.1.28.8,,, -Lenovo,,,,,,419,24,1,hv-2022-lenovo,Lenovo,,,,,,,hv908.nubes.rl.ac.uk,,10.1.28.9,,, -Lenovo,,,,,,419,23,1,hv-2022-lenovo,Lenovo,,,,,,,hv909.nubes.rl.ac.uk,,10.1.28.10,,, -Lenovo,,,,,,419,22,1,hv-2022-lenovo,Lenovo,,,,,,,hv910.nubes.rl.ac.uk,,10.1.28.11,,, -Lenovo,,,,,,419,21,1,hv-2022-lenovo,Lenovo,,,,,,,hv911.nubes.rl.ac.uk,,10.1.28.12,,, -Lenovo,,,,,,419,20,1,hv-2022-lenovo,Lenovo,,,,,,,hv912.nubes.rl.ac.uk,,10.1.28.13,,, -Lenovo,,,,,,419,19,1,hv-2022-lenovo,Lenovo,,,,,,,hv913.nubes.rl.ac.uk,,10.1.28.14,,, +Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,NIC 1 VRF,FQDN,BMC MAC,BMC IP,BMC VRF,Serial,NIC 2 MAC,password +,,,,,,,,,,,,,,,,,,,,,,,, +Lenovo,,,,,,419,32,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv900.nubes.rl.ac.uk,,10.1.28.1,t1_management,,, +Lenovo,,,,,,419,31,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv901.nubes.rl.ac.uk,,10.1.28.2,t1_management,,, +Lenovo,,,,,,419,30,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv902.nubes.rl.ac.uk,,10.1.28.3,t1_management,,, +Lenovo,,,,,,419,29,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv903.nubes.rl.ac.uk,,10.1.28.4,t1_management,,, +Lenovo,,,,,,419,28,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv904.nubes.rl.ac.uk,,10.1.28.5,t1_management,,, +Lenovo,,,,,,419,27,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv905.nubes.rl.ac.uk,,10.1.28.6,t1_management,,, +Lenovo,,,,,,419,26,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv906.nubes.rl.ac.uk,,10.1.28.7,t1_management,,, +Lenovo,,,,,,419,25,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv907.nubes.rl.ac.uk,,10.1.28.8,t1_management,,, +Lenovo,,,,,,419,24,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv908.nubes.rl.ac.uk,,10.1.28.9,t1_management,,, +Lenovo,,,,,,419,23,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv909.nubes.rl.ac.uk,,10.1.28.10,t1_management,,, +Lenovo,,,,,,419,22,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv910.nubes.rl.ac.uk,,10.1.28.11,t1_management,,, +Lenovo,,,,,,419,21,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv911.nubes.rl.ac.uk,,10.1.28.12,t1_management,,, +Lenovo,,,,,,419,20,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv912.nubes.rl.ac.uk,,10.1.28.13,t1_management,,, +Lenovo,,,,,,419,19,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv913.nubes.rl.ac.uk,,10.1.28.14,t1_management,,, From 9c9bc870d168e628ce2f73d298580ed9e1380600 Mon Sep 17 00:00:00 2001 From: "apdibbo@clearskies.it" Date: Wed, 16 Aug 2023 08:58:04 +0100 Subject: [PATCH 4/5] Remove blank line and add some example values --- simple-bulk-import/raw-csv.csv | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/simple-bulk-import/raw-csv.csv b/simple-bulk-import/raw-csv.csv index 2a275e3..4d125c7 100644 --- a/simple-bulk-import/raw-csv.csv +++ b/simple-bulk-import/raw-csv.csv @@ -1,16 +1,15 @@ Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,NIC 1 VRF,FQDN,BMC MAC,BMC IP,BMC VRF,Serial,NIC 2 MAC,password -,,,,,,,,,,,,,,,,,,,,,,,, -Lenovo,,,,,,419,32,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv900.nubes.rl.ac.uk,,10.1.28.1,t1_management,,, -Lenovo,,,,,,419,31,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv901.nubes.rl.ac.uk,,10.1.28.2,t1_management,,, -Lenovo,,,,,,419,30,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv902.nubes.rl.ac.uk,,10.1.28.3,t1_management,,, -Lenovo,,,,,,419,29,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv903.nubes.rl.ac.uk,,10.1.28.4,t1_management,,, -Lenovo,,,,,,419,28,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv904.nubes.rl.ac.uk,,10.1.28.5,t1_management,,, -Lenovo,,,,,,419,27,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv905.nubes.rl.ac.uk,,10.1.28.6,t1_management,,, -Lenovo,,,,,,419,26,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv906.nubes.rl.ac.uk,,10.1.28.7,t1_management,,, -Lenovo,,,,,,419,25,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv907.nubes.rl.ac.uk,,10.1.28.8,t1_management,,, -Lenovo,,,,,,419,24,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv908.nubes.rl.ac.uk,,10.1.28.9,t1_management,,, -Lenovo,,,,,,419,23,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv909.nubes.rl.ac.uk,,10.1.28.10,t1_management,,, -Lenovo,,,,,,419,22,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv910.nubes.rl.ac.uk,,10.1.28.11,t1_management,,, -Lenovo,,,,,,419,21,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv911.nubes.rl.ac.uk,,10.1.28.12,t1_management,,, -Lenovo,,,,,,419,20,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv912.nubes.rl.ac.uk,,10.1.28.13,t1_management,,, -Lenovo,,,,,,419,19,1,hv-2022-lenovo,Lenovo,,,,,,,global,hv913.nubes.rl.ac.uk,,10.1.28.14,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,32,1,hv-2022-lenovo,Lenovo,front,front-back,eth0,25gb-x-sfp28,,,global,hv900.nubes.rl.ac.uk,,10.1.28.1,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,31,1,hv-2022-lenovo,Lenovo,front,front-back,eth1,100gb-x-qsfp29,,,global,hv901.nubes.rl.ac.uk,,10.1.28.2,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,30,1,hv-2022-lenovo,Lenovo,front,front-back,eth2,100gb-x-qsfp30,,,global,hv902.nubes.rl.ac.uk,,10.1.28.3,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,29,1,hv-2022-lenovo,Lenovo,front,front-back,eth3,100gb-x-qsfp31,,,global,hv903.nubes.rl.ac.uk,,10.1.28.4,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,28,1,hv-2022-lenovo,Lenovo,front,front-back,eth4,100gb-x-qsfp32,,,global,hv904.nubes.rl.ac.uk,,10.1.28.5,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,27,1,hv-2022-lenovo,Lenovo,front,front-back,eth5,100gb-x-qsfp33,,,global,hv905.nubes.rl.ac.uk,,10.1.28.6,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,26,1,hv-2022-lenovo,Lenovo,front,front-back,eth6,100gb-x-qsfp34,,,global,hv906.nubes.rl.ac.uk,,10.1.28.7,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,25,1,hv-2022-lenovo,Lenovo,front,front-back,eth7,100gb-x-qsfp35,,,global,hv907.nubes.rl.ac.uk,,10.1.28.8,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,24,1,hv-2022-lenovo,Lenovo,front,front-back,eth8,100gb-x-qsfp36,,,global,hv908.nubes.rl.ac.uk,,10.1.28.9,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,23,1,hv-2022-lenovo,Lenovo,front,front-back,eth9,100gb-x-qsfp37,,,global,hv909.nubes.rl.ac.uk,,10.1.28.10,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,22,1,hv-2022-lenovo,Lenovo,front,front-back,eth10,100gb-x-qsfp38,,,global,hv910.nubes.rl.ac.uk,,10.1.28.11,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,21,1,hv-2022-lenovo,Lenovo,front,front-back,eth11,100gb-x-qsfp39,,,global,hv911.nubes.rl.ac.uk,,10.1.28.12,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,20,1,hv-2022-lenovo,Lenovo,front,front-back,eth12,100gb-x-qsfp40,,,global,hv912.nubes.rl.ac.uk,,10.1.28.13,t1_management,,, +Lenovo,cloud,staged,,,,MagDB rack419,19,1,hv-2022-lenovo,Lenovo,front,front-back,eth13,100gb-x-qsfp41,,,global,hv913.nubes.rl.ac.uk,,10.1.28.14,t1_management,,, From e3e9ce3e110aa00426b9194f7ac798bcd704cfe3 Mon Sep 17 00:00:00 2001 From: "apdibbo@clearskies.it" Date: Wed, 16 Aug 2023 09:02:08 +0100 Subject: [PATCH 5/5] Add purchase order number field --- simple-bulk-import/netbox_import_gen.py | 1 + simple-bulk-import/raw-csv.csv | 30 ++++++++++++------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/simple-bulk-import/netbox_import_gen.py b/simple-bulk-import/netbox_import_gen.py index 0312a7d..b4165eb 100644 --- a/simple-bulk-import/netbox_import_gen.py +++ b/simple-bulk-import/netbox_import_gen.py @@ -39,6 +39,7 @@ device["position"] = importee["Rack Position"] device["name"] = importee["FQDN"] device["serial"] = importee["Serial"] + device["cf_order_no"] = importee["Purchase Order"] devices.append(device) # Create BMC Interface diff --git a/simple-bulk-import/raw-csv.csv b/simple-bulk-import/raw-csv.csv index 4d125c7..d943728 100644 --- a/simple-bulk-import/raw-csv.csv +++ b/simple-bulk-import/raw-csv.csv @@ -1,15 +1,15 @@ -Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,NIC 1 VRF,FQDN,BMC MAC,BMC IP,BMC VRF,Serial,NIC 2 MAC,password -Lenovo,cloud,staged,,,,MagDB rack419,32,1,hv-2022-lenovo,Lenovo,front,front-back,eth0,25gb-x-sfp28,,,global,hv900.nubes.rl.ac.uk,,10.1.28.1,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,31,1,hv-2022-lenovo,Lenovo,front,front-back,eth1,100gb-x-qsfp29,,,global,hv901.nubes.rl.ac.uk,,10.1.28.2,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,30,1,hv-2022-lenovo,Lenovo,front,front-back,eth2,100gb-x-qsfp30,,,global,hv902.nubes.rl.ac.uk,,10.1.28.3,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,29,1,hv-2022-lenovo,Lenovo,front,front-back,eth3,100gb-x-qsfp31,,,global,hv903.nubes.rl.ac.uk,,10.1.28.4,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,28,1,hv-2022-lenovo,Lenovo,front,front-back,eth4,100gb-x-qsfp32,,,global,hv904.nubes.rl.ac.uk,,10.1.28.5,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,27,1,hv-2022-lenovo,Lenovo,front,front-back,eth5,100gb-x-qsfp33,,,global,hv905.nubes.rl.ac.uk,,10.1.28.6,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,26,1,hv-2022-lenovo,Lenovo,front,front-back,eth6,100gb-x-qsfp34,,,global,hv906.nubes.rl.ac.uk,,10.1.28.7,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,25,1,hv-2022-lenovo,Lenovo,front,front-back,eth7,100gb-x-qsfp35,,,global,hv907.nubes.rl.ac.uk,,10.1.28.8,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,24,1,hv-2022-lenovo,Lenovo,front,front-back,eth8,100gb-x-qsfp36,,,global,hv908.nubes.rl.ac.uk,,10.1.28.9,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,23,1,hv-2022-lenovo,Lenovo,front,front-back,eth9,100gb-x-qsfp37,,,global,hv909.nubes.rl.ac.uk,,10.1.28.10,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,22,1,hv-2022-lenovo,Lenovo,front,front-back,eth10,100gb-x-qsfp38,,,global,hv910.nubes.rl.ac.uk,,10.1.28.11,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,21,1,hv-2022-lenovo,Lenovo,front,front-back,eth11,100gb-x-qsfp39,,,global,hv911.nubes.rl.ac.uk,,10.1.28.12,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,20,1,hv-2022-lenovo,Lenovo,front,front-back,eth12,100gb-x-qsfp40,,,global,hv912.nubes.rl.ac.uk,,10.1.28.13,t1_management,,, -Lenovo,cloud,staged,,,,MagDB rack419,19,1,hv-2022-lenovo,Lenovo,front,front-back,eth13,100gb-x-qsfp41,,,global,hv913.nubes.rl.ac.uk,,10.1.28.14,t1_management,,, +Vendor,Tenant,Status,Role,Location,Site,Rack,Rack Position,Rack Units,Device Type,Manufacturer,face,airflow,NIC 1 Name,NIC 1 Type,NIC 1 MAC,NIC 1 IP,NIC 1 VRF,FQDN,BMC MAC,BMC IP,BMC VRF,Serial,Purchase Order,NIC 2 MAC,password +Lenovo,cloud,staged,,,,MagDB rack419,32,1,hv-2022-lenovo,Lenovo,front,front-back,eth0,25gb-x-sfp28,,,global,hv900.nubes.rl.ac.uk,,10.1.28.1,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,31,1,hv-2022-lenovo,Lenovo,front,front-back,eth1,100gb-x-qsfp29,,,global,hv901.nubes.rl.ac.uk,,10.1.28.2,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,30,1,hv-2022-lenovo,Lenovo,front,front-back,eth2,100gb-x-qsfp30,,,global,hv902.nubes.rl.ac.uk,,10.1.28.3,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,29,1,hv-2022-lenovo,Lenovo,front,front-back,eth3,100gb-x-qsfp31,,,global,hv903.nubes.rl.ac.uk,,10.1.28.4,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,28,1,hv-2022-lenovo,Lenovo,front,front-back,eth4,100gb-x-qsfp32,,,global,hv904.nubes.rl.ac.uk,,10.1.28.5,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,27,1,hv-2022-lenovo,Lenovo,front,front-back,eth5,100gb-x-qsfp33,,,global,hv905.nubes.rl.ac.uk,,10.1.28.6,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,26,1,hv-2022-lenovo,Lenovo,front,front-back,eth6,100gb-x-qsfp34,,,global,hv906.nubes.rl.ac.uk,,10.1.28.7,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,25,1,hv-2022-lenovo,Lenovo,front,front-back,eth7,100gb-x-qsfp35,,,global,hv907.nubes.rl.ac.uk,,10.1.28.8,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,24,1,hv-2022-lenovo,Lenovo,front,front-back,eth8,100gb-x-qsfp36,,,global,hv908.nubes.rl.ac.uk,,10.1.28.9,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,23,1,hv-2022-lenovo,Lenovo,front,front-back,eth9,100gb-x-qsfp37,,,global,hv909.nubes.rl.ac.uk,,10.1.28.10,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,22,1,hv-2022-lenovo,Lenovo,front,front-back,eth10,100gb-x-qsfp38,,,global,hv910.nubes.rl.ac.uk,,10.1.28.11,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,21,1,hv-2022-lenovo,Lenovo,front,front-back,eth11,100gb-x-qsfp39,,,global,hv911.nubes.rl.ac.uk,,10.1.28.12,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,20,1,hv-2022-lenovo,Lenovo,front,front-back,eth12,100gb-x-qsfp40,,,global,hv912.nubes.rl.ac.uk,,10.1.28.13,t1_management,,,, +Lenovo,cloud,staged,,,,MagDB rack419,19,1,hv-2022-lenovo,Lenovo,front,front-back,eth13,100gb-x-qsfp41,,,global,hv913.nubes.rl.ac.uk,,10.1.28.14,t1_management,,,,