]> git.sesse.net Git - nms/blob - web/make-switches.pl
a728ec23c9d5b5a9771c016785edd02d151c518d
[nms] / web / make-switches.pl
1 #! /usr/bin/perl
2
3 print "delete from temppoll;\n";
4 print "delete from placements;\n";
5 print "delete from dhcp;\n";
6 print "delete from switches;\n";
7 print "SELECT pg_catalog.setval('switches_switch_seq', 1, false);\n";
8 print "SELECT pg_catalog.setval('polls_poll_seq', 1, false);\n";
9
10 my $cc = 241;
11 my $dd = 0;
12
13 my $i = 1;
14 for $e (1..73) {
15         next if ($e % 2 == 0);
16
17         for $s (1..6) {
18                 next if ($s <  4 && $e < 5);
19                 next if ($s >= 4 && $e > 72);
20
21                 next if ($e >= 69 && ($s == 1 || $s == 6));
22         
23                 my $x = int(285 + $e * 9.45);
24                 my $y;
25
26                 $x += 7 if ($e >= 19);
27                 $x += 14 if ($e >= 35);
28                 $x += 9 if ($e >= 51);
29                 $x += 9 if ($e >= 68 && $s < 4);
30                 
31                 my ($c, $d);
32                 if ($s <= 3) {
33                         $c = $e;
34                         $d = ($s - 1) * 64;
35
36                         $y = 470 - $s * 48;
37                 } else {
38                         $c = $e + 1;
39                         $d = ($s - 4) * 64;
40                         
41                         $y = 450 - $s * 48 - ($s - 3) * 2;
42                 }
43
44                 my $xx = $x + 12;
45                 my $yy = $y + (($s > 3) ? 50 : 48);
46         
47                 $dk = $dd + 7 + ($cc - 241) * 42;
48
49                 # lasses magic-factor =)
50                 $dk += 4;
51                 if ($dk > 13) {
52                         $dk += 3;
53                 }       
54
55                 print "insert into switches (ip, sysname, switchtype) values ('81.162.$cc.$dk', 'e$e-${s}sw', 'es3024');\n";
56                 print "insert into placements (switch, placement) values ($i, box '(($x,$y),($xx,$yy))');\n";
57                 print "insert into dhcp (switch, network) values ($i, '81.162.$c.$d/26');\n";
58                 $i++;
59
60                 $dd++;
61                 if ($dd == 42) {
62                         $cc++;
63                         $dd = 0;
64                 }
65         }
66 }
67
68 my @k = qw(
69            81.162.212.0/24|81.162.212.1|game|es3024|((1100,200),(1125,225))
70            81.162.250.0/24|81.162.250.1|noc|es3024|((630,520),(680,550))
71            81.162.252.0/24|81.162.252.1|presse|es3024|((560,520),(610,550))
72            81.162.203.0/24|81.162.203.1|info-desk|es3024|((270,350),(305,385))
73            81.162.213.0/24|81.162.213.1|logistics|es3024|((800,75),(900,100))
74            81.162.213.0/24|81.162.213.1|logistics|es3024|((800,75),(900,100))
75            81.162.200.0/24|81.162.200.1|vision|es3024|((170,240),(200,270))
76            81.162.202.0/24|81.162.202.1|vision-sponsor|es3024|((220,150),(250,180))
77           );
78            
79 for my $x (@k) {
80         my ($net,$mip,$sysname,$switchtype,$box) = split /\|/, $x;
81         print "insert into switches (ip, sysname, switchtype) values ('$mip', '$sysname', '$switchtype');\n";
82         print "insert into placements (switch, placement) values ($i, box '$box');\n";
83         print "insert into dhcp (switch, network) values ($i, '$net');\n";
84         $i++;
85 }