diff options
author | Kristian Lyngstol <kristian@bohemians.org> | 2015-06-23 14:26:30 +0200 |
---|---|---|
committer | Kristian Lyngstol <kristian@bohemians.org> | 2015-06-23 14:26:30 +0200 |
commit | a495b7094845f2f484b8e6e0ea0b7077bbb790a5 (patch) | |
tree | dcdc5ff650850675b11d3919d5c13dda8afb4c9d /tools/draw-neighbors.pl | |
parent | c8a1ab2f825348969ffe72a20f562b329e271db1 (diff) | |
parent | af9a801eb6c21c1c9087f1f8f910b98c4ad1ecc6 (diff) |
Merge branch 'master' of 192.168.122.1:tgmanage
Diffstat (limited to 'tools/draw-neighbors.pl')
-rwxr-xr-x | tools/draw-neighbors.pl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/draw-neighbors.pl b/tools/draw-neighbors.pl new file mode 100755 index 0000000..323e676 --- /dev/null +++ b/tools/draw-neighbors.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl + +use strict; +use JSON; + +my $in; +while (<STDIN>) { + $in .= $_; +} + +my %assets = %{JSON::XS::decode_json($in)}; + +print "strict graph network {\n"; +while (my ($key, $value) = each %assets) { + print_tree ($key,0,undef); +} +print "}\n"; + +sub print_tree +{ + my ($chassis_id,$indent,$parent,$max) = @_; + if (!defined($parent)) { + $parent = ""; + } + if ($indent > 50) { + die "Possible loop detected."; + } + print " \"$assets{$chassis_id}{sysName}\" -- {"; + my @n; + while (my ($key, $value) = each %{$assets{$chassis_id}{neighbors}}) { + push @n, "\"$assets{$key}{sysName}\""; + } + print join(",",@n) . "};\n"; +} + |