#! /usr/bin/env python
from zyxelcommon import *
+distro_num_switches = [ 0, 0, 0, 0, 0 ];
+
+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,
+ 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 " % "",
+ print "%-20s " % "",
else:
- print retColor((row,sw)), "%-15s " % retIP((row,sw)),
+ ip = retIP((row,sw))
+ distro = int(retSubnet((row,sw))) - 241
+ vlan = (distro * 100) + (distro_num_switches[distro] / 5) + 301
+ 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, 67):
+ print ""
+
+# evil side-effect =)
+switches = open("switches-zyxel.txt","w")
+vlan_list = vlans.keys()
+vlan_list.sort()
+
+i = 2;
+for vlan in vlan_list:
+ switches.write("194.0.%u.0 24 split:%s\n" % (i, ",".join(vlans[vlan])))
+ i = i + 1