Campus Network as a Service
NI Campus Structured cabling import
Network Inventory can document the physical cable installation of a campus. It can be done manually, or via an api.
There are scripts in directory Panel_kort on https://platform.sunet.se/CNaaS/cnaas-tools/src/branch/main/ni/Panel_kort to help with the import.
Two scripts take different forms of Excel Panel_kort files and creates json files. One script takes the json file and imports it to NI.
Panel_kort to json
Excel format:
Uttagsnummer | Rumsnummer |
FSSB01 33 03 | 2211 |
FSSB01 33 04 | 2211 |
FSSB01 33 05 | 2207 |
FSSB01 33 06 | 2207 |
FSSB01 33 07 | 2201 |
FSSB01 33 08 | 2201 |
FSSB01 33 09 | 2102 |
FSSB01 33 10 | 2102 |
FSSB01 33 11 | 2201 |
Excel Column 1 is splitt into the different objects
p['stall'] = uttag[0:4]
p['stativ'] = uttag[4:6]
p['panel'] = uttag[7:9]
p['port'] = uttag[10:12]
./Panel_kort/Panelkort_excel_to_json.py -n <start row> -b <house> -e <xlsx file> -w <pannel-kort.json>
./Panel_kort/Panelkort_excel_to_json.py -n 3 -b "Albano Hus 3" -e "/Users/bergroth/work/su-ni_data/Albano Hus 3 - Uttaglista.xlsx" -w panelkort.json
Alternative panel_kort to json
Standard Cabling card
Excel format:
Kabel | Port | Till | Anmärkning | Kabel | Port | Till | Anmärkning | |||
typ | typ | |||||||||
Panel: | 01A | Panel: | 01B | |||||||
W1 | 01 | Postrum 626 | på vägg | W1 | 01 | Kontor 654 | på vägg | |||
W1 | 02 | Postrum 626 | på vägg | W1 | 02 | Kontor 654 | på vägg | |||
W1 | 03 | Kontor 628 | på vägg | W1 | 03 | Kontor 656 | på vägg | |||
W1 | 04 | Kontor 628 | på vägg | W1 | 04 | Kontor 656 | på vägg | |||
W1 | 05 | Kontor 630 | på vägg | W1 | 05 | Kontor 658 | på vägg | |||
W1 | 06 | Kontor 630 | på vägg | W1 | 06 | Kontor 658 | på vägg | |||
W1 | 07 | Kontor 633 | på vägg | W1 | 07 | Kontor 660 | på vägg | |||
W1 | 08 | Kontor 633 | på vägg | W1 | 08 | Kontor 660 | på vägg | |||
W1 | 09 | Kontor 636 | på vägg | W1 | 09 | Kontor 664 | på vägg | |||
W1 | 10 | Kontor 636 | på vägg | W1 | 10 | Kontor 664 | på vägg | |||
W1 | 11 | Kontor 639 | på vägg | W1 | 11 | Kontor 664 | på vägg | |||
W1 | 12 | Kontor 639 | på vägg | W1 | 12 | Kontor 664 | på vägg | |||
W1 | 13 | Kontor 639 | på vägg | W1 | 13 | Kontor 667 | på vägg | |||
W1 | 14 | Kontor 639 | på vägg | W1 | 14 | Kontor 667 | på vägg | |||
W1 | 15 | Kontor 642 | på vägg | W1 | 15 | Kontor 667 | på vägg | |||
W1 | 16 | Kontor 642 | på vägg | W1 | 16 | Kontor 667 | på vägg | |||
W1 | 17 | Kontor 644 | på vägg | W1 | 17 | Kontor 670 | på vägg | |||
W1 | 18 | Kontor 644 | på vägg | W1 | 18 | Kontor 670 | på vägg | |||
W1 | 19 | Kontor 644 | på vägg | W1 | 19 | Kontor 672 | på vägg | |||
W1 | 20 | Kontor 644 | på vägg | W1 | 20 | Kontor 672 | på vägg | |||
W1 | 21 | Kontor 648 | på vägg | W1 | 21 | Kontor 674 | på vägg | |||
W1 | 22 | Kontor 648 | på vägg | W1 | 22 | Kontor 674 | på vägg | |||
W1 | 23 | Kontor 651 | på vägg | W1 | 23 | Kontor 676 | på vägg | |||
W1 | 24 | Kontor 651 | på vägg | W1 | 24 | Kontor 676 | på vägg | |||
Kabel | Port | Till | Anmärkning | Kabel | Port | Till | Anmärkning | |||
typ | typ | |||||||||
Panel: | 01D | Panel: | 11A | |||||||
W1 | 01 | Kontor 678 | på vägg | W1 | 01 | Kontor 603 | på vägg | |||
W1 | 02 | Kontor 678 | på vägg | W1 | 02 | Kontor 603 | på vägg | |||
W1 | 03 | Kontor 680 | på vägg | W1 | 03 | Kontor 602 | på vägg | |||
W1 | 04 | Kontor 680 | på vägg | W1 | 04 | Kontor 602 | på vägg | |||
W1 | 05 | Möte 683 | på vägg | W1 | 05 | Kontor 604 | på vägg | |||
W1 | 06 | Möte 683 | på vägg | W1 | 06 | Kontor 604 | på vägg | |||
W1 | 07 | Kontor 686 | på vägg | W1 | 07 | Kontor 606 | på vägg | |||
W1 | 08 | Kontor 686 | på vägg | W1 | 08 | Kontor 606 | på vägg | |||
W1 | 09 | Kontor 689 | på vägg | W1 | 09 | Kontor 608 | på vägg | |||
W1 | 10 | Kontor 689 | på vägg | W1 | 10 | Kontor 608 | på vägg | |||
W1 | 11 | Möte 690 | på vägg | W1 | 11 | Kontor 610 | på vägg | |||
W1 | 12 | Möte 690 | på vägg | W1 | 12 | Kontor 610 | på vägg | |||
W1 | 13 | Kontor 692 | på vägg | W1 | 13 | Kontor 612 | på vägg | |||
W1 | 14 | Kontor 692 | på vägg | W1 | 14 | Kontor 612 | på vägg | |||
W1 | 15 | Kontor 694 | på vägg | W1 | 15 | Kontor 614 | på vägg | |||
W1 | 16 | Kontor 694 | på vägg | W1 | 16 | Kontor 614 | på vägg | |||
W1 | 17 | Kontor 696 | på vägg | W1 | 17 | Kontor 617 | på vägg | |||
W1 | 18 | Kontor 696 | på vägg | W1 | 18 | Kontor 617 | på vägg | |||
W1 | 19 | Kontor 698 | på vägg | W1 | 19 | Kontor 619 | på vägg | |||
W1 | 20 | Kontor 698 | på vägg | W1 | 20 | Kontor 619 | på vägg | |||
W1 | 21 | Kontor 698 | på vägg | W1 | 21 | Kopiering 621 | på vägg | |||
W1 | 22 | Kontor 696 | på vägg | W1 | 22 | Kopiering 621 | på vägg | |||
W1 | 23 | Kontor 694 | på vägg | W1 | 23 | Förvaring 622 | på vägg | |||
W1 | 24 | Kontor 692 | på vägg | W1 | 24 | Förvaring 622 | på vägg | |||
Objekt | ||||||||||
Stockholms universitet | ||||||||||
Björnstigen 87 | 170 73 Solna | Tel: 08-271082 | Universitetsvägen 10 , SHA 6 | |||||||
Ritad av | Granskad | Projektnummer | Panelbeteckning | |||||||
TJ | AA | P.0291453.1.01 | 01A - 11A | Panelkort koppar | ||||||
Datum | Ändringsdatum | Status | Ställ | Stativ | Dokumentbeteckning | |||||
####### | Relationshandling | AB | 02 | &EMA01 |
Panelkort2_excel_to_json.py -b <house> -e <xlsx dir> -w <pannel-kort.json>"
Reads all XLSX files in one directory and parse them all.
ex:
Panelkort2_excel_to_json.py -b "Albano" -e /Users/bergroth/work/su-ni_data/Panelkort/ -w pk.json
The script gives you a list of all the uniq rooms in the excel files. Please check so there are no spelling duplications.
/Users/bergroth/PycharmProjects/FulScript/venv/bin/python /Users/bergroth/work/cnaas/random/Panel_kort/Panelkort2_excel_to_json.py -b Albano -e /Users/bergroth/work/su-ni_data/Panelkort/ -w pk.json
F: "Panelkort koppar AB02 11C.xlsx"
Stativ: AB 02
Paneler: 11C None None None
F: "~$Panelkort koppar AC02 61A.xlsx"
--- can't be opened ---
F: "Panelkort koppar BA01 71C - 81B.xlsx"
Stativ: BA 01
Paneler: 71C 71D 81B None
F: "Panelkort koppar AB02 41B - 51B.xlsx"
Stativ: AB 02
Paneler: 41B 41C 51A 51B
F: "Panelkort koppar AB02 01A-11A.xlsx"
Stativ: AB 02
Paneler: 01A 01B 01D 11A
F: "~$Panelkort koppar AC02 41C - 51C.xlsx"
--- can't be opened ---
F: "~$Panelkort koppar AB02 11C.xlsx"
--- can't be opened ---
F: "Panelkort koppar AC02 61A.xlsx"
Stativ: AC 02
Paneler: 61A None None None
F: "~$Panelkort koppar AB02 01A-11A.xlsx"
--- can't be opened ---
F: "Panelkort koppar AC02 41C - 51C.xlsx"
Stativ: AC 02
Paneler: 41C 51A 51B 51C
--- Unika rum i pannelkort. Kontrolera efter felstavningsdubletter ---
'Datasal B307'
'Datasal B315'
'ELC'
'Elc '
'Elcentral'
'Förvaring 622'
'Kontor 602'
....
JSON to NI import
./Panel_kort/panelkort_json_to_ni_2.py -i <pannel-kort.json>"
it require a config.py file with NI credentials
user='kaka'
key='kaka'
url='https://ni-dev.cnaas.io'
Input json file is a list of ports/outlets, create your self or use the excel to json scripts.
# JSON in file
{ ports: [
{hus : "Albano Hus 3", | Hus
stall : "2123" | Ställ / Rum med stativ "2123"
stativ : "FSSB01" | Stativ
panel : "01A" | Panel i stativ "01A" "01B" "01C" "01D" "01" "1"
port : "01" | Port i Panel "01" "02" "1" "2"
room : "2123" | Rum som uttaget finns i "2123" "Koridor 213"
comment : "I Tak" | Kommentar om vart uttaget är placerat i rummet. "Fönsterbänkskanal" "I tak"
},] }
Structure of NI
Hus - sites: needs to be defined in NI before the import
Ställ - Room: CrossConnect room
Stativ - rack
Panel - Patchpanel
Name in ni is the rack-name combined with the Panel name
Room: FSSB01 PatchPanel:33 → FSSB0133
Port - Port
The port is the number in the panel
room - room
(ops SE/EN should have been rum)
Is the room where the data outlet is located
Uttag - Outlet
The name is constructed from the rack + panel + port
Cable
A installation cable is created and connected between the outlet and the patch panel port