use Data::Dumper;
-my $patchlist = "/root/patchlist.txt";
-my $switches = "/root/switches.txt";
-#my $patchlist = "/home/eirikn/patchlist.txt.eirik";
-#my $switches = "/home/eirikn/switches.txt.eirik";
+#my $patchlist = "/root/patchlist.txt";
+#my $switches = "/root/switches.txt";
+my $patchlist = "/home/eirikn/patchlist.txt.eirik";
+my $switches = "/home/eirikn/switches.txt.eirik";
BEGIN {
require "../include/config.pm";
sub do_distro {
- my ($dip, $newip, $vlan) = @_;
+ my ($dip, $newip, $vlan, $switchname) = @_;
my $ios = Net::Telnet::Cisco->new(Host => $dip,
Errmode => 'return',
print "Zyxel is alive..\n";
$p->close();
- system("perl ./zyxelng.pl 192.168.1.1 $newip");
+ system("perl ./zyxelng.pl 192.168.1.1 $newip $switchname");
####
while(<SWITCHES>) {
my ($ip, $net, $name) = split;
- print $name."\n";
if ($name =~ /e\d+-\d/) {
die "We only support /26 nets for now you wanted $net" if ($net ne "26");
$switchips{$name} = $ip;
print "Ip: $ip\n";
my $dip = $distro.".net.tg07.gathering.org";
- do_distro($dip, $ip, $vlan);
+ do_distro($dip, $ip, $vlan, $switch);
# my ($dip, $newip, $vlan) = @_;
}
close(PATCHLIST);
#nms::ios_close($t);
-my $oldip;
-my $newip;
if ($#ARGV < 1) {
- die "Foo $#ARGV";
+ die "Not enough arguments to zyxelng.pl $#ARGV";
}
-$oldip = $ARGV[0];
-$newip = $ARGV[1];
+my $oldip = $ARGV[0];
+my $newip = $ARGV[1];
+#$switchname = $ARGV[2];
my $one = 0;
my $cmds1 = <<EOF
sys hostname es-3024
ip igmpsnoop enable
-
-sys sw vlan type 802.1q
-sys sw vlan1q svlan setentry MNGT 248 25 fixed tag
-sys sw vlan1q svlan active 248
-sys sw vlan1q svlan setentry e01-1sw 1 25 fixed untag
-
-sys sw vlan1q svlan setentry MNGT 248 1 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 2 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 3 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 4 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 5 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 6 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 7 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 8 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 9 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 10 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 11 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 12 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 13 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 14 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 15 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 16 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 17 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 18 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 19 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 20 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 21 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 22 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 23 forbidden tag
-sys sw vlan1q svlan setentry MNGT 248 24 forbidden tag
EOF
;
-#
+
foreach (split(/\n+/, $cmds1)) {
print "Sending: '$_'\n";
switch_exec($_, $switch);
#! /usr/bin/perl
+print "begin;\n";
print "delete from temppoll;\n";
print "delete from placements;\n";
print "delete from dhcp;\n";
print "SELECT pg_catalog.setval('switches_switch_seq', 1, false);\n";
print "SELECT pg_catalog.setval('polls_poll_seq', 1, false);\n";
+open PATCHLIST, "patchlist.txt"
+ or die "patchlist.txt: $!";
+
my $cc = 241;
my $dd = 0;
my $i = 1;
-for $e (1..73) {
- next if ($e % 2 == 0);
-
- for $s (1..6) {
- next if ($s < 4 && $e < 5);
- next if ($s >= 4 && $e > 72);
-
- next if ($e >= 69 && ($s == 1 || $s == 6));
-
- my $x = int(285 + $e * 9.45);
- my $y;
-
- $x += 7 if ($e >= 19);
- $x += 14 if ($e >= 35);
- $x += 9 if ($e >= 51);
- $x += 9 if ($e >= 68 && $s < 4);
-
- my ($c, $d);
- if ($s <= 3) {
- $c = $e;
- $d = ($s - 1) * 64;
-
- $y = 470 - $s * 48;
- } else {
- $c = $e + 1;
- $d = ($s - 4) * 64;
-
- $y = 450 - $s * 48 - ($s - 3) * 2;
- }
-
- my $xx = $x + 12;
- my $yy = $y + (($s > 3) ? 50 : 48);
-
- $dk = $dd + 7 + ($cc - 241) * 42;
-
- # lasses magic-factor =)
- $dk += 4;
- if ($dk > 13) {
- $dk += 3;
- }
-
- print "insert into switches (ip, sysname, switchtype) values ('81.162.$cc.$dk', 'e$e-${s}sw', 'es3024');\n";
- print "insert into placements (switch, placement) values ($i, box '(($x,$y),($xx,$yy))');\n";
- print "insert into dhcp (switch, network) values ($i, '81.162.$c.$d/26');\n";
- $i++;
-
- $dd++;
- if ($dd == 42) {
- $cc++;
- $dd = 0;
- }
+while (<PATCHLIST>) {
+ chomp;
+ my ($name, $distro, $port) = split / /;
+
+ $name =~ /e(\d+)-(\d+)/;
+ my ($e, $s) = ($1, $2);
+
+ my $x = int(244 + $e * 9.87);
+ my $y;
+
+ $x += 7 if ($e >= 19);
+ $x += 14 if ($e >= 35);
+ $x += 9 if ($e >= 51);
+ $x += 9 if ($e >= 68 && $s < 4);
+
+ my ($c, $d);
+ if ($s <= 3) {
+ $c = $e;
+ $d = ($s - 1) * 64;
+
+ $y = 455 - $s * 48;
+ } else {
+ $c = $e + 1;
+ $d = ($s - 4) * 64;
+
+ $y = 424 - $s * 48 - ($s - 3) * 2;
}
-}
-my @k = qw(
- 81.162.212.0/24|81.162.212.1|game|es3024|((1100,200),(1125,225))
- 81.162.250.0/24|81.162.250.1|noc|es3024|((630,520),(680,550))
- 81.162.252.0/24|81.162.252.1|presse|es3024|((560,520),(610,550))
- 81.162.203.0/24|81.162.203.1|info-desk|es3024|((270,350),(305,385))
- 81.162.213.0/24|81.162.213.1|logistics|es3024|((800,75),(900,100))
- 81.162.213.0/24|81.162.213.1|logistics|es3024|((800,75),(900,100))
- 81.162.200.0/24|81.162.200.1|vision|es3024|((170,240),(200,270))
- 81.162.202.0/24|81.162.202.1|vision-sponsor|es3024|((220,150),(250,180))
- );
-
-for my $x (@k) {
- my ($net,$mip,$sysname,$switchtype,$box) = split /\|/, $x;
- print "insert into switches (ip, sysname, switchtype) values ('$mip', '$sysname', '$switchtype');\n";
- print "insert into placements (switch, placement) values ($i, box '$box');\n";
- print "insert into dhcp (switch, network) values ($i, '$net');\n";
+ my $xx = $x + 12;
+ my $yy = $y + (($s > 3) ? 50 : 48);
+
+ $dk = $dd + 7 + ($cc - 241) * 42;
+
+# lasses magic-factor =)
+ $dk += 4;
+ if ($dk > 13) {
+ $dk += 3;
+ }
+
+ print "insert into switches (ip, sysname, switchtype) values ('87.76.$cc.$dk', 'e$e-${s}sw', 'es3024');\n";
+ print "insert into placements (switch, placement) values ($i, box '(($x,$y),($xx,$yy))');\n";
+ print "insert into dhcp (switch, network) values ($i, '87.76.$c.$d/26');\n";
$i++;
+
+ $dd++;
+ if ($dd == 42) {
+ $cc++;
+ $dd = 0;
+ }
}
+
+print "end;\n";