From e6fd0035555499fa186845f4c69b715e9ad246b9 Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Fri, 26 Feb 2016 11:29:20 +0100 Subject: More cleanup and adding add_switches.txt.pl add_switches.txt.pl is not quite done yet --- tools/add_switches.txt.pl | 116 ++++++++++++++++++++++++++++++++++++++++ tools/make-dummy-placement.sh | 12 ----- tools/make-switch-placements.pl | 86 ----------------------------- 3 files changed, 116 insertions(+), 98 deletions(-) create mode 100755 tools/add_switches.txt.pl delete mode 100755 tools/make-dummy-placement.sh delete mode 100755 tools/make-switch-placements.pl (limited to 'tools') diff --git a/tools/add_switches.txt.pl b/tools/add_switches.txt.pl new file mode 100755 index 0000000..c3def24 --- /dev/null +++ b/tools/add_switches.txt.pl @@ -0,0 +1,116 @@ +#!/usr/bin/perl +# Usage: ./add_switches.txt.pl < switches.txt > switches.json +# +# Parses switches.txt into json and does some guesswork for placement based +# on name, if possible. +# +# Actually adding them comes later. +# + +use strict; +use warnings; +use Data::Dumper; + +my %switches = (); + +# Guesses placement from name to get a starting point +# Largely courtesy of Knuta +sub guess_placement { + my ($x, $y, $xx, $yy); + + my $name = $_[0]; + my $src = "unknown"; + if ($name =~ /^e\d+-\d+$/) { + $name =~ /e(\d+)-(\d+)/; + my ($e, $s) = ($1, $2); + $src = "main"; + + $x = int(232 + (($e-1)/2) * 31.1); + $y = undef; + + $x += 14 if ($e >= 17); + $x += 14 if ($e >= 29); + $x += 14 if ($e >= 45); + $x += 14 if ($e >= 63); + + if ($s > 2) { + $y = 405 - 120 * ($s-2); + } else { + $y = 689 - 120 * ($s); + } + + $xx = $x + 16; + $yy = $y + 120; + + # Justeringer + $y += 45 if $name eq "e1-4"; + $y += 20 if $name eq "e3-4"; + $y += 15 if $name eq "e5-4"; + $yy -= 25 if $name eq "e11-1"; + + #$yy -= 14 if $name eq "e77-1"; + #$yy -= 28 if $name eq "e79-1"; + #$yy -= 15 if $name eq "e81-1"; + #$yy -= 56 if $name eq "e83-1"; + } elsif ($name =~ /^sw(\d+)-creativia$/) { + my ($s) = ($1); + $src = "creativia"; + $x = 1535; + $y = int(130 + 32.2 * $s); + $yy = $y + 20; + if ($s == 1) { + $xx = $x + 70; + } elsif ($s == 2) { + $xx = $x + 90; + } elsif ($s == 3) { + $xx = $x + 102; + } else { + $xx = $x + 142; + } + + } elsif ($name =~ /^crew(\d+)-(\d+)$/) { + my ($s, $n) = ($1, $2); + $src = "crew"; + $x = 1023 + 45 * $n; + $y = int(329 + 20.5 * $s); + $xx = $x + 45; + $yy = $y + 14; + + if ($s == 1 && $n == 1) { + $xx += 25; + } + } else { + # Fallback to have _some_ position + $src = "random"; + $x = int(rand(500)); + $y = int(rand(500)); + $xx = $x + 20; + $yy = $y + 130; + }; + + + my %box = ( + 'src' => "$src", + 'x1' => $x, + 'y1' => $y, + 'xx' => $xx, + 'yy' => $yy + ); + return %box; +} +while () { + chomp; + my ($switch, $subnet4, $subnet6, $mgtmt4, $mgtmt6, $lolid, $distro) = split(/ /); + my %foo = guess_placement($switch); + $switches{$switch} = { + 'subnet4' => "$subnet4", + 'subnet6' => "$subnet6", + 'mgtmt4' => "$mgtmt4", + 'mgtmt6' => "$mgtmt6", + 'lolid' => "$lolid", + 'distro' => "$distro" + }; + $switches{$switch}{'placement_guess'} = \%foo; +} + +print Dumper(\%switches); diff --git a/tools/make-dummy-placement.sh b/tools/make-dummy-placement.sh deleted file mode 100755 index 192e3d3..0000000 --- a/tools/make-dummy-placement.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Generate a random placement-entry insert for a named switch (convenient -# if you manually add a switch with no placement) - -for a in $* ; do -X=$(( $RANDOM % 500 )) -Y=$(( $RANDOM % 500 )) -X1=$(( $X + 20 )) -Y1=$(( $Y + 130 )) -echo "insert into placements select switch, box '(($X,$Y),($X1,$Y1))' from switches where sysname = '$a';" -done diff --git a/tools/make-switch-placements.pl b/tools/make-switch-placements.pl deleted file mode 100755 index efacfcc..0000000 --- a/tools/make-switch-placements.pl +++ /dev/null @@ -1,86 +0,0 @@ -#! /usr/bin/perl -use strict; -use warnings; - -my $switchtype = "ex2200"; - -print "begin;\n"; -print "delete from placements where switch in (select switch from switches where switchtype = '$switchtype' and (sysname like 'e%') or sysname like '%creativia%');\n"; - -my %ip; -my $i = 1; -while () { - chomp; - my @info = split(/ /); - - if (scalar @info < 5) { - die "Unknown line: $_"; - } - my ($x, $y, $xx, $yy); - - my $name = $info[0]; - if ($name =~ /^e\d+-\d+$/) { - $name =~ /e(\d+)-(\d+)/; - my ($e, $s) = ($1, $2); - - $x = int(232 + (($e-1)/2) * 31.1); - $y = undef; - - $x += 14 if ($e >= 17); - $x += 14 if ($e >= 29); - $x += 14 if ($e >= 45); - $x += 14 if ($e >= 63); - - if ($s > 2) { - $y = 405 - 120 * ($s-2); - } else { - $y = 689 - 120 * ($s); - } - - $xx = $x + 16; - $yy = $y + 120; - - # Justeringer - $y += 45 if $name eq "e1-4"; - $y += 20 if $name eq "e3-4"; - $y += 15 if $name eq "e5-4"; - $yy -= 25 if $name eq "e11-1"; - - #$yy -= 14 if $name eq "e77-1"; - #$yy -= 28 if $name eq "e79-1"; - #$yy -= 15 if $name eq "e81-1"; - #$yy -= 56 if $name eq "e83-1"; - } elsif ($name =~ /^sw(\d+)-creativia$/) { - my ($s) = ($1); - $x = 1535; - $y = int(130 + 32.2 * $s); - $yy = $y + 20; - if ($s == 1) { - $xx = $x + 70; - } elsif ($s == 2) { - $xx = $x + 90; - } elsif ($s == 3) { - $xx = $x + 102; - } else { - $xx = $x + 142; - } - - } elsif ($name =~ /^crew(\d+)-(\d+)$/) { - my ($s, $n) = ($1, $2); - $x = 1023 + 45 * $n; - $y = int(329 + 20.5 * $s); - $xx = $x + 45; - $yy = $y + 14; - - if ($s == 1 && $n == 1) { - $xx += 25; - } - } else { - next; - } - - print "insert into placements select switch, box '(($x,$y),($xx,$yy))' from switches where sysname = '$name';\n"; - $i++; -} - -print "end;\n"; -- cgit v1.2.3