]> git.sesse.net Git - nms/blob - web/make-switches.pl
Merge.
[nms] / web / make-switches.pl
1 #! /usr/bin/perl
2
3 print "begin;\n";
4 print "delete from temppoll;\n";
5 print "delete from placements;\n";
6 print "delete from dhcp;\n";
7 print "delete from switches;\n";
8 print "SELECT pg_catalog.setval('switches_switch_seq', 1, false);\n";
9 print "SELECT pg_catalog.setval('polls_poll_seq', 1, false);\n";
10
11 open PATCHLIST, "patchlist.txt"
12         or die "patchlist.txt: $!";
13
14 my $i = 1;
15 while (<PATCHLIST>) {
16         chomp;
17         my ($name, $distro, $port) = split / /;
18
19         $name =~ /e(\d+)-(\d+)/;
20         my ($e, $s) = ($1, $2);
21
22         my $x = int(244 + $e * 9.87);
23         my $y;
24
25         $x += 7 if ($e >= 19);
26         $x += 14 if ($e >= 35);
27         $x += 9 if ($e >= 51);
28         $x += 9 if ($e >= 68 && $s < 4);
29
30         my ($c, $d);
31         if ($s <= 3) {
32                 $c = $e;
33                 $d = ($s - 1) * 64;
34
35                 $y = 455 - $s * 48;
36         } else {
37                 $c = $e + 1;
38                 $d = ($s - 4) * 64;
39
40                 $y = 424 - $s * 48 - ($s - 3) * 2;
41         }
42
43         my $xx = $x + 12;
44         my $yy = $y + (($s > 3) ? 50 : 48);
45
46         my ($ip, $range);
47         if ($s == 1) {
48                 $ip = "87.76." . ($e) . ".2";
49                 $range = "87.76." . ($e) . ".0";
50         } elsif ($s == 2) {
51                 $ip = "87.76." . ($e) . ".66";
52                 $range = "87.76." . ($e) . ".64";
53         } elsif ($s == 3) {
54                 $ip = "87.76." . ($e) . ".130";
55                 $range = "87.76." . ($e) . ".128";
56         } elsif ($s == 4) {
57                 $ip = "87.76." . ($e + 1) . ".2";
58                 $range = "87.76." . ($e + 1) . ".0";
59         } elsif ($s == 5) {
60                 $ip = "87.76." . ($e + 1) . ".66";
61                 $range = "87.76." . ($e + 1) . ".64";
62         } elsif ($s == 6) {
63                 $ip = "87.76." . ($e + 1) . ".130";
64                 $range = "87.76." . ($e + 1) . ".128";
65         }
66
67         print "insert into switches (ip, sysname, switchtype) values ('$ip', 'e$e-${s}sw', 'es3024');\n";
68         print "insert into placements (switch, placement) values ($i, box '(($x,$y),($xx,$yy))');\n";
69         print "insert into dhcp (switch, network) values ($i, '87.76.$c.$d/26');\n";
70         $i++;
71 }
72
73 print "end;\n";