Netbox auto updates
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.2 KiB

#!/usr/bin/python3.8
import requests
import json
import urllib3
id_or_name=(input('Input id of patchpanel:\n'))
#print(type(id_or_name))
urllib3.disable_warnings()
API_HOST = 'https://demo.netbox.dev/api'
TYPE = '/dcim/front-ports/'
API_FRONTPORT = '/dcim/front-ports/?device_id='+id_or_name
headers = {
'Authorization': "Token 8554b98861e47bc6a6fea03e5c4629c3659cacc5",
'User-Agent': 'PyScript 0.1',
'Content-Type': 'application/json',
'accept': 'application/json'
}
FRONTPORT = requests.get(API_HOST+API_FRONTPORT, headers=headers, verify=False)
ports_label = []
with open('list_pp.csv') as f:
for line in f:
ports_label.append(line.strip())
label_list = []
count_of_ports = (FRONTPORT.json()["count"])
count_in_list = len(ports_label)
if count_of_ports == count_in_list:
print('Generating list')
else:
print('Please check list')
print(f'Ports count: {count_of_ports} and ports in list: {count_in_list}')
data = []
for p in range(count_of_ports):
front_port_id = (FRONTPORT.json()["results"][p]["id"])
front_port_label = (ports_label[p])
list_done = (f'{{"id": {front_port_id}, "label": "{front_port_label}"}},')
print(list_done)