]> git.sesse.net Git - nms/blob - zyxel/switchmap.py
Remove some duplicate code.
[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                         vlan = row * 10 + sw
28                         distro_num_switches[distro] = distro_num_switches[distro] + 1
29
30                         text = "%s/%u" % (ip, vlan)
31                         swname = "e%u-sw%u" % (row, sw)
32
33                         try:
34                                 vlans[vlan].append(swname)
35                         except KeyError:
36                                 vlans[vlan] = [swname]
37                         
38                         padding1 = "".join(["="] * ((21-len(text))/2))
39                         padding2 = "".join(["="] * ((22-len(text))/2))
40                         print "".join(("\e[30;1m", padding1, retColor((row,sw)), text, "\e[30;1m", padding2)),
41                         
42                 if sw == 3:
43                         print "   ",
44         print ""
45         if row in (17, 33, 49, 65):
46                 print ""
47
48 # evil side-effect =)
49 switches = open("switches-zyxel.txt","w")
50 vlan_list = vlans.keys()
51 vlan_list.sort()
52
53 i = 1;
54 for vlan in vlan_list:
55         row = vlan / 10
56         num = vlan % 10
57
58         cnet_major = row
59         if (num > 3):
60                 cnet_major = cnet_major + 1
61                 cnet_minor = (num-4) * 64
62         else:
63                 cnet_minor = (num-1) * 64       
64         
65 #       switches.write("194.0.%u.0 24 split:%s\n" % (i, ",".join(vlans[vlan])))
66         switches.write("194.0.%u.%u 26 e%u-sw%u\n" % (cnet_major, cnet_minor, row, num))
67         i = i + 1