aboutsummaryrefslogtreecommitdiffstats
path: root/clients/flatify.pl
diff options
context:
space:
mode:
authorroot <root@frank.tg14.gathering.org>2014-04-17 18:55:20 +0200
committerroot <root@frank.tg14.gathering.org>2014-04-17 18:55:20 +0200
commit80977a88fde6f849f68c5864f18fe61a4b2dae64 (patch)
tree9b75bc2aeb7f0a52b1961d660dc5517e7e8be827 /clients/flatify.pl
parent2ba6a83e9a7a4b3ae0def6a287bbb2d443538f41 (diff)
Add a little script to make switches flat on the placement.
Diffstat (limited to 'clients/flatify.pl')
-rwxr-xr-xclients/flatify.pl21
1 files changed, 21 insertions, 0 deletions
diff --git a/clients/flatify.pl b/clients/flatify.pl
new file mode 100755
index 0000000..f2aa18a
--- /dev/null
+++ b/clients/flatify.pl
@@ -0,0 +1,21 @@
+#! /usr/bin/perl
+
+# Make the given switch into a D-Link placement-wise.
+
+use strict;
+use warnings;
+use lib '../include';
+use nms;
+
+my $dbh = nms::db_connect();
+my $q = $dbh->prepare('SELECT switch,placement FROM switches NATURAL JOIN placements WHERE sysname LIKE ?');
+$q->execute('%'.$ARGV[0].'%');
+
+while (my $ref = $q->fetchrow_hashref) {
+ $ref->{'placement'} =~ /\((\d+),(\d+)\),\((\d+),(\d+)\)/ or die;
+ my ($x1,$y1,$x2,$y2) = ($1, $2, $3, $4);
+ my $placement = sprintf "(%d,%d),(%d,%d)", $x2 - 100, $y2 - 16, $x2, $y2;
+ $dbh->do("UPDATE placements SET placement=? WHERE switch=?",
+ undef, $placement, $ref->{'switch'});
+ last; # Take only one.
+}