diff --git a/list_pp.csv b/list_pp.csv new file mode 100644 index 0000000..ac25c50 --- /dev/null +++ b/list_pp.csv @@ -0,0 +1,24 @@ +??? +??? +898 +737 +732 +721 +886 +717 +??? +??? +??? +??? +??? +??? +??? +??? +??? +702 +800 +920 +943 +??? +??? +??? diff --git a/update_desc_on_switchports.py b/update_desc_on_switchports.py new file mode 100755 index 0000000..ae04d2d --- /dev/null +++ b/update_desc_on_switchports.py @@ -0,0 +1,58 @@ +#!/usr/bin/python3.8 +import requests +# import json +import urllib3 + +urllib3.disable_warnings() +API_TOKEN = 'Token ba70a20837155752895ab1860d366812a711e6ea' +API_HOST = "https://demo.netbox.dev" +API_APP = "/api/dcim/interfaces/" + +headers = { + 'Authorization': API_TOKEN, + 'User-Agent': 'PyScript 0.1', + 'Content-Type': 'application/json', + 'accept': 'application/json' +} + +device_id = (input('Input id of switch:\n')) + +FRONTPORT = requests.get(API_HOST + API_APP + '?device_id=' + device_id, headers=headers, verify=False) +count_of_ports = (FRONTPORT.json()['count']) + +# Read labels from file and create list. After count numbers of them +list_port_labels = [] +with open('list_pp.csv') as f: + for line in f: + list_port_labels.append(line.strip()) + +count_of_labels = len(list_port_labels) + +list_port_id = [] + + +def fill_list_port_id(counts): + for p in range(counts): + list_port_id.append(FRONTPORT.json()['results'][p]['id']) + + +def create_json_list(): + json_list = ['id', 'label'] + zipped = zip(list_port_id, list_port_labels) + dicts = [dict(zip(json_list, values)) for values in zipped] + print(dicts) + r = requests.patch(API_HOST + API_APP, json=dicts, headers=headers, verify=False) + print(r.json) + + +print("Count of labels:", count_of_labels, "Count of ports:", count_of_ports) +if count_of_labels == count_of_ports: + print("Списки совпадают. Генерируем") + fill_list_port_id(count_of_labels) + create_json_list() +elif count_of_labels < count_of_ports: + print(f'В списке с названием меньше позиций ({count_of_labels}) чем портов ({count_of_ports}) в патчпанеле') + fill_list_port_id(count_of_labels) + create_json_list() +else: + print(f'В списке с названием больше позиций ({count_of_labels}) чем портов ({count_of_ports}) в патчпанеле') diff --git a/update_labels_on_patchpanel.py b/update_labels_on_patchpanel.py index a019218..f13a980 100755 --- a/update_labels_on_patchpanel.py +++ b/update_labels_on_patchpanel.py @@ -4,8 +4,8 @@ import requests import urllib3 urllib3.disable_warnings() -API_TOKEN = 'Token 367579298e03d2fd43df86e97b487fe5782d868d' -API_HOST = "https://demo.netbox.dev/" +API_TOKEN = 'Token 30498d1f93d710e3d518bc7d3d48a5221b0e48df' +API_HOST = "https://demo.netbox.dev" API_APP = "api/dcim/front-ports/" headers = { diff --git a/update_vlans_on_switch.py b/update_vlans_on_switch.py index 40290f5..0b8ddac 100755 --- a/update_vlans_on_switch.py +++ b/update_vlans_on_switch.py @@ -4,7 +4,7 @@ import json import urllib3 urllib3.disable_warnings() -API_TOKEN = 'Token 30498d1f93d710e3d518bc7d3d48a5221b0e48df' +API_TOKEN = 'Token 0ee155b764ce14be8a2c2b44b075fcfed9a0f2ec' API_HOST = "https://demo.netbox.dev/" API_APP = "api/dcim/interfaces/" @@ -16,838 +16,45 @@ headers = { } # device_id = (input('Input id of patchpanel:\n')) -device_id = '4' +device_id = '1' vlan_database = { - 1001: 3, - 1008: 4, - 1009: 5, - 1010: 6, - 1011: 7, - 1017: 8, - 1018: 9, - 1019: 10, - 1020: 11, - 1021: 12, - 1022: 13, - 1023: 14, - 1024: 15, - 1026: 16, - 1028: 17, - 1029: 18, - 1032: 1, - 1033: 19, - 1035: 20, - 1036: 21, - 1039: 22, - 1040: 23, - 1043: 24, - 1063: 25, - 1064: 26, - 1065: 27, - 1066: 28, - 1067: 29, - 1068: 30, - 1069: 31, - 1070: 32, - 1071: 33, - 1072: 34, - 1073: 35, - 1074: 36, - 1075: 37, - 1076: 38, - 1077: 39, - 1078: 40, - 1080: 41, - 1081: 42, - 1082: 43, - 1083: 44, - 1084: 45, - 1096: 46, - 1099: 54, - 1100: 55, - 1112: 56, - 1113: 57, - 1128: 58, - 1139: 2, - 1224: 47, - 1225: 48, - 3000: 59, - 3001: 60, - 3002: 61, - 3003: 62, - 3004: 63, - 3005: 64, - 3006: 65, - 3007: 66, - 3008: 67, - 3009: 68, - 3010: 69, - 3011: 70, - 3020: 71, - 1: 82, - 2: 83, - 1102: 78, - 1144: 79, - 1145: 80, - 1226: 81 + 100: 1, + 300: 27, + 200: 2 } vlan_from_switch = [ - { - "id": 1, - "mode": "", - "untagged_vlan": [1035], - "tagged_vlans": [ -1035, - ] -}, -{ - "id": 2, - "mode": "", - "untagged_vlan": [1035], - "tagged_vlans": [ -1035, - ] -}, -{ - "id": 3, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 4, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 5, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, - ] -}, -{ - "id": 6, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, - ] -}, -{ - "id": 7, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 8, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 9, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 10, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 11, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 12, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1032, -1035, -1096, -1139, -1225, - ] -}, -{ - "id": 13, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, { - "id": 14, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] + "id": 1, + "mode": "", + "untagged_vlan": [100], + "tagged_vlans": [ +200, +300, + ] }, { - "id": 15, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] + "id": 2, + "mode": "", + "untagged_vlan": [100], + "tagged_vlans": [ +100, + ] }, { - "id": 16, - "mode": "", - "untagged_vlan": [1075], - "tagged_vlans": [ -1075, - ] -}, -{ - "id": 17, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 18, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 19, - "mode": "", - "untagged_vlan": [1040], - "tagged_vlans": [ -1040, - ] -}, -{ - "id": 20, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 21, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 22, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 23, - "mode": "", - "untagged_vlan": [1040], - "tagged_vlans": [ -1040, - ] -}, -{ - "id": 24, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 25, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1032, -1096, -1099, - ] -}, -{ - "id": 26, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 27, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1032, -1064, -1065, -1096, - ] -}, -{ - "id": 28, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 29, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 30, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1032, -1096, -1099, - ] -}, -{ - "id": 31, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1099, - ] -}, -{ - "id": 32, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1099, - ] -}, -{ - "id": 33, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 34, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 35, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 36, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 37, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 38, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 39, - "mode": "", - "untagged_vlan": [1096], - "tagged_vlans": [ -1096, - ] -}, -{ - "id": 40, - "mode": "", - "untagged_vlan": [1064], - "tagged_vlans": [ -1064, - ] -}, -{ - "id": 41, - "mode": "", - "untagged_vlan": [1036], - "tagged_vlans": [ -1036, - ] -}, -{ - "id": 42, - "mode": "", - "untagged_vlan": [1043], - "tagged_vlans": [ -1043, - ] -}, -{ - "id": 43, - "mode": "", - "untagged_vlan": [1064], - "tagged_vlans": [ -1064, - ] -}, -{ - "id": 44, - "mode": "", - "untagged_vlan": [1064], - "tagged_vlans": [ -1064, - ] -}, -{ - "id": 45, - "mode": "", - "untagged_vlan": [1032], - "tagged_vlans": [ -1021, -1032, -1035, -1064, -1075, -1076, -1096, -1099, -1139, -1225, -1226, - ] -}, -{ - "id": 46, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1021, -1032, -1035, -1036, -1063, -1064, -1065, -1075, -1076, -1077, -1096, -1099, -1139, -1224, -1225, -1226, - ] -}, -{ - "id": 47, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, - ] -}, -{ - "id": 48, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, -1226, - ] -}, -{ - "id": 49, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, -1226, - ] -}, -{ - "id": 50, - "mode": "", - "untagged_vlan": [], - "tagged_vlans": [ -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, -1226, - ] -}, -{ - "id": 51, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, - ] -}, -{ - "id": 52, - "mode": "", - "untagged_vlan": [1], - "tagged_vlans": [ -1, -1001, -1008, -1009, -1010, -1011, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1026, -1028, -1029, -1032, -1033, -1035, -1036, -1039, -1040, -1043, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1080, -1081, -1096, -1099, -1100, -1112, -1113, -1128, -1139, -1224, -1225, - ] + "id": 3, + "mode": "", + "untagged_vlan": [1064], + "tagged_vlans": [ +100, +200, +300, + ] }, + ] + FRONTPORT = requests.get(API_HOST + API_APP + '?device_id=' + device_id + '&limit=60', headers=headers, verify=False) count_of_ports = (FRONTPORT.json()['count'])