]> git.sesse.net Git - nms/blobdiff - zyxel/switchmap.py
Added Chillout.
[nms] / zyxel / switchmap.py
old mode 100644 (file)
new mode 100755 (executable)
index d1fba36..479d082
@@ -1,22 +1,67 @@
 #! /usr/bin/env python
 
 from zyxelcommon import *
+distro_num_switches = [ 0, 0, 0, 0, 0, 0, 0, 0 ]
+# distro_vlan_start = [ 301, 405, 509, 617, 727, 835, 938, 1041 ]
+distro_vlan_start = [ 301, 401, 501, 601, 701, 801, 901, 1001 ]
+switches_per_cnet = 1
+
+vlans = {}
 
 print "    ",
 for sw in range(1,7):
-       print "%7u          " % sw,
+       print "%9u            " % sw,
        if sw == 3:
                print "   ",
 print ""
 
-for row in range(1,75,2):
-       print "\e[37m%2u: " % row,
+for row in range(1,73,2):
+       print "\e[37;0m%2u: " % row,
        for sw in range(1,7):
-               if (row <= 3 and sw <= 3) or (row >= 69 and (sw == 1 or sw == 6)):
-                       print "%-16s " % "",
+               if (row <= 3 and sw <= 3) or (row >= 67 and (sw == 1 or sw == 6)) or (row >= 71 and (sw <= 3)):
+                       print "%-20s " % "",
                else:
-                       print retColor((row,sw)), "%-15s " % retIP((row,sw)),
+                       ip = retIP((row,sw))
+                       distro = int(retSubnet((row,sw))) - 241
+#                      vlan = (distro_num_switches[distro] / switches_per_cnet) + distro_vlan_start[distro]
+                       vlan = row * 10 + sw
+                       distro_num_switches[distro] = distro_num_switches[distro] + 1
+
+                       text = "%s/%u" % (ip, vlan)
+                       swname = "e%u-sw%u" % (row, sw)
+
+                       try:
+                               vlans[vlan].append(swname)
+                       except KeyError:
+                               vlans[vlan] = [swname]
+                       
+                       padding1 = "".join(["="] * ((21-len(text))/2))
+                       padding2 = "".join(["="] * ((22-len(text))/2))
+                       print "".join(("\e[30;1m", padding1, retColor((row,sw)), text, "\e[30;1m", padding2)),
                        
                if sw == 3:
                        print "   ",
        print ""
+       if row in (17, 33, 49, 65):
+               print ""
+
+# evil side-effect =)
+switches = open("switches-zyxel.txt","w")
+vlan_list = vlans.keys()
+vlan_list.sort()
+
+i = 1;
+for vlan in vlan_list:
+       row = vlan / 10
+       num = vlan % 10
+
+       cnet_major = row
+       if (num > 3):
+               cnet_major = cnet_major + 1
+               cnet_minor = (num-4) * 64
+       else:
+               cnet_minor = (num-1) * 64       
+       
+#      switches.write("194.0.%u.0 24 split:%s\n" % (i, ",".join(vlans[vlan])))
+       switches.write("194.0.%u.%u 26 e%u-sw%u\n" % (cnet_major, cnet_minor, row, num))
+       i = i + 1