]> git.sesse.net Git - nms/blob - zyxel/switchmap.py
Go back to full routing.
[nms] / zyxel / switchmap.py
1 #! /usr/bin/env python
2
3 from zyxelcommon import *
4 distro_num_switches = [ 0, 0, 0, 0, 0, 0, 0, 0 ]
5 # distro_vlan_start = [ 301, 405, 509, 617, 727, 835, 938, 1041 ]
6 distro_vlan_start = [ 301, 401, 501, 601, 701, 801, 901, 1001 ]
7 switches_per_cnet = 1
8
9 vlans = {}
10
11 print "    ",
12 for sw in range(1,7):
13         print "%9u            " % sw,
14         if sw == 3:
15                 print "   ",
16 print ""
17
18 for row in range(1,73,2):
19         print "\e[37;0m%2u: " % row,
20         for sw in range(1,7):
21                 if (row <= 3 and sw <= 3) or (row >= 67 and (sw == 1 or sw == 6)) or (row >= 71 and (sw <= 3)):
22                         print "%-20s " % "",
23                 else:
24                         ip = retIP((row,sw))
25                         distro = int(retSubnet((row,sw))) - 241
26                         vlan = (distro_num_switches[distro] / switches_per_cnet) + distro_vlan_start[distro]
27                         distro_num_switches[distro] = distro_num_switches[distro] + 1
28
29                         text = "%s/%u" % (ip, vlan)
30                         swname = "e%u-sw%u" % (row, sw)
31
32                         try:
33                                 vlans[vlan].append(swname)
34                         except KeyError:
35                                 vlans[vlan] = [swname]
36                         
37                         padding1 = "".join(["="] * ((21-len(text))/2))
38                         padding2 = "".join(["="] * ((22-len(text))/2))
39                         print "".join(("\e[30;1m", padding1, retColor((row,sw)), text, "\e[30;1m", padding2)),
40                         
41                 if sw == 3:
42                         print "   ",
43         print ""
44         if row in (17, 33, 49, 65):
45                 print ""
46
47 # evil side-effect =)
48 switches = open("switches-zyxel.txt","w")
49 vlan_list = vlans.keys()
50 vlan_list.sort()
51
52 i = 1;
53 for vlan in vlan_list:
54         switches.write("194.0.%u.0 24 split:%s\n" % (i, ",".join(vlans[vlan])))
55         i = i + 1