Project

General

Profile

« Previous | Next » 

Revision ec551d65

Added by Hamish Coleman about 15 years ago

  • ID ec551d658026090abeb8f9f7bc183cf50ff27317

Remove unused code, update output to be purely json

View differences:

indexmrtg.cgi
}
}
sub maketree_grouphosttest($$) {
my ($name,$sequence) = @_;
my ($group,$host,$test) = extract_grouphosttest($name);
if (!defined($group)) {
# TODO cope with missing group/host/test parts.
# for now, just assume it is not a group/host/test
$db->{tree}->{other}->{$name} = $sequence;
return;
}
# a valid hosttype both:
# defined($db->{graph}->{$name}->{hosttype}) &&
# defined($db->{hosttype}->{$hosttype})
my $hosttype = $db->{graph}{$name}{tag}{hosttype};
if (defined($hosttype) && !defined($db->{hosttype}->{$hosttype})) {
$hosttype=undef;
}
# TODO - determine a better description for this tree leaf
my $testtreename = 'Graph Type';
if (defined $hosttype) {
$db->{tree}->{group}->{$group}->{$hosttype}->{$host}->{$test}->{$name} = $sequence;
$db->{tree}->{group}->{$group}->{$hosttype}->{$testtreename}->{$test}->{$name} = $sequence;
$db->{tree}->{group}->{ALL}->{$hosttype}->{$host}->{$test}->{$name} = $sequence;
$db->{tree}->{group}->{ALL}->{$testtreename}->{$test}->{$hosttype}->{$host}->{$name} = $sequence;
$db->{tree}->{group}->{$group}->{$testtreename}->{$test}->{$hosttype}->{$host}->{$name} = $sequence;
} else {
$db->{tree}->{group}->{$group}->{$host}->{$test}->{$name} = $sequence;
$db->{tree}->{group}->{ALL}->{$host}->{$test}->{$name} = $sequence;
$db->{tree}->{group}->{ALL}->{$testtreename}->{$test}->{$host}->{$name} = $sequence;
$db->{tree}->{group}->{$group}->{$testtreename}->{$test}->{$host}->{$name} = $sequence;
}
}
sub maketree_definedby($$) {
my ($name,$sequence) = @_;
# config files
my $definedby = $db->{graph}->{$name}->{definedby};
my @srcpath = split /\//,$definedby;
shift @srcpath; # remove initial slash
unshift @srcpath,"config"; # ensure that the config node exists
my $node = $db->{tree};
while (@srcpath ) {
if (!defined $node->{$srcpath[0]}) {
$node->{$srcpath[0]} = {};
}
$node = $node->{$srcpath[0]};
shift @srcpath;
}
# assign a name name and sequence to the final node
$node->{$name} = $sequence;
}
# Look through the name database and create tree entries for each cfgfile
#
sub maketree() {
for my $name (keys %{$db->{graph}}) {
my $sequence = $db->{graph}->{$name}->{sequence};
maketree_definedby($name,$sequence);
maketree_grouphosttest($name,$sequence);
# TODO - parse the Target setting and create trees
# TODO - parse magic comments and create trees here
}
# TODO - look for nodes that have only one child and that child is
# childless and prune the child
}
sub maketags() {
maketree_find_hosttypes();
......
my $this_host = hostname;
print header,
start_html(-TITLE=>"$this_host indexmrtg (V$VERSION)"),
"\n";
print "Content-Type: text/json; charset=ISO-8859-1\n";
config_load_file(@config_files);
config_read_filesystem();
maketags();
#maketree();
# Time the next update to occur a little while after the next interval completes
my $interval = 300; # 5 min update interval
......
$refresh = $interval if $refresh <= $guardband;
my $expires = gmtime (time + $interval * 2 + $guardband);
print
"<meta http-equiv=\"expires\" content=\"$expires GMT\">\n",
"<meta http-equiv=\"refresh\" content=$refresh>\n";
print end_html;
$db->{global}{expires} = "$expires GMT";
$db->{global}{refresh} = $refresh;
print "\n",JSON->new->utf8(1)->pretty(1)->canonical(1)->encode($db),"\n";
if (param('debug')) {
print "\n",Dumper(\$db),"\n";
}
print "\n",JSON->new->utf8(1)->pretty(1)->canonical(1)->encode($db),"\n";

Also available in: Unified diff