-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
csvToNetworkJSON.py
58 lines (55 loc) · 1.67 KB
/
csvToNetworkJSON.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from pythonCheck import checkPythonVersion
checkPythonVersion()
import os
import csv
import json
from ispConfig import uispSite, uispStrategy, overwriteNetworkJSONalways
from ispConfig import generatedPNUploadMbps, generatedPNDownloadMbps, upstreamBandwidthCapacityDownloadMbps, upstreamBandwidthCapacityUploadMbps
from integrationCommon import NetworkGraph, NetworkNode, NodeType
def csvToNetworkJSONfile():
sites = []
with open('manualNetwork.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
if 'Site Name' in row[0]:
header = row
else:
name, down, up, parent = row
site = {'name': name,
'download': down,
'upload': up,
'parent': parent}
sites.append(site)
net = NetworkGraph()
idCounter = 1000
nameToID = {}
for site in sites:
site['id'] = idCounter
idCounter = idCounter + 1
nameToID[site['name']] = site['id']
for site in sites:
id = site['id']
if site['parent'] == '':
parentID = None
else:
parentID = nameToID[site['parent']]
name = site['name']
parent = site['parent']
download = site['download']
upload = site['upload']
nodeType = NodeType.site
node = NetworkNode(id=id, displayName=name, type=nodeType,
parentId=parentID, download=download, upload=upload, address=None, customerName=None)
net.addRawNode(node)
net.prepareTree()
net.plotNetworkGraph(False)
if net.doesNetworkJsonExist():
if overwriteNetworkJSONalways:
net.createNetworkJson()
else:
print("network.json already exists and overwriteNetworkJSONalways set to False. Leaving in-place.")
else:
net.createNetworkJson()
net.createShapedDevices()
if __name__ == '__main__':
csvToNetworkJSONfile()