aboutsummaryrefslogtreecommitdiffstats
path: root/include/nms/util.pm
diff options
context:
space:
mode:
Diffstat (limited to 'include/nms/util.pm')
-rw-r--r--include/nms/util.pm141
1 files changed, 0 insertions, 141 deletions
diff --git a/include/nms/util.pm b/include/nms/util.pm
deleted file mode 100644
index 64637b8..0000000
--- a/include/nms/util.pm
+++ /dev/null
@@ -1,141 +0,0 @@
-#! /usr/bin/perl
-use strict;
-use warnings;
-package nms::util;
-use Data::Dumper;
-
-use base 'Exporter';
-our @EXPORT = qw(guess_placement parse_switches_txt parse_switches parse_switch);
-
-# Parse a single switches.txt-formatted switch
-sub parse_switch {
- my ($switch, $subnet4, $subnet6, $mgtmt4, $mgtmt6, $lolid, $distro) = split(/ /);
- my %foo = guess_placement($switch);
- my %ret = (
- 'sysname' => "$switch",
- 'subnet4' => "$subnet4",
- 'subnet6' => "$subnet6",
- 'mgmt_v4_addr' => "$mgtmt4",
- 'mgmt_v6_addr' => "$mgtmt6",
- 'traffic_vlan' => "$lolid",
- 'distro' => "$distro"
- );
- %{$ret{'placement'}} = guess_placement($switch);
- return %ret;
-}
-
-# Parses a switches_txt given as a filehandle on $_[0]
-# (e.g.: parse_switches_txt(*STDIN) or parse_switches_txt(whatever).
-sub parse_switches_txt {
- my $fh = $_[0];
- my @switches;
- while(<$fh>) {
- chomp;
- my %switch = parse_switch($_);
- push @switches, {%switch};
- }
- return @switches;
-}
-
-# Parses switches in switches.txt format given as $_[0].
-# E.g: parse_switches("e1-3 88.92.0.0/26 2a06:5840:0a::/64 88.92.54.2/26 2a06:5840:54a::2/64 1013 distro0")
-sub parse_switches {
- my @switches;
- my $txt = $_[0];
- foreach (split("\n",$txt)) {
- chomp;
- my %switch = parse_switch($_);
- push @switches, {%switch};
- }
- return @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(292 + (($e-1)/2) * 31.1);
- $y = undef;
-
- $x += 14 if ($e >= 13);
- $x += 14 if ($e >= 25);
- $x += 14 if ($e >= 41);
- $x += 14 if ($e >= 59);
-
- 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 "e7-1";
- $y += 10 if $name eq "e5-2";
- $yy -= 25 if $name eq "e5-2";
- $y += 20 if ($e >= 81 and $s == 2);
- $yy -= 20 if ($e >= 79 and $s == 1);
- $yy -= 30 if ($e >= 81 and $s == 1);
-
- } elsif ($name =~ /^creativia(\d+)$/) {
- my ($s) = ($1);
- $src = "creativia";
- $x = 1535;
- $y = int(160 + 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 = 550 + 65 * $n;
- $y = int(759 + 20.5 * $s);
- $xx = $x + 65;
- $yy = $y + 14;
- } elsif ($name =~ /^distro(\d)/) {
- my $d = ($1);
- $src = "distro";
- $x = 292 + $d * 165;
- $y = 415;
- $xx = $x + 130;
- $yy = $y + 20;
- } 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;
-}