Changeset 1347
- Timestamp:
- 10/23/07 22:55:06 (4 years ago)
- Files:
-
- people/jo/multilevel-groups-2/server/Munin.pm.in (modified) (1 diff)
- people/jo/multilevel-groups-2/server/munin-domainview.tmpl.in (modified) (5 diffs)
- people/jo/multilevel-groups-2/server/munin-html.in (modified) (7 diffs)
- people/jo/multilevel-groups-2/server/style.css (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
people/jo/multilevel-groups-2/server/Munin.pm.in
r1346 r1347 2 2 # -*- perl -*- 3 3 # 4 # Copyright (C) 2003-200 4Jimmy Olsen, Audun Ytterdal4 # Copyright (C) 2003-2007 Jimmy Olsen, Audun Ytterdal 5 5 # 6 6 # This program is free software; you can redistribute it and/or people/jo/multilevel-groups-2/server/munin-domainview.tmpl.in
r860 r1347 4 4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 5 5 <head> 6 <link rel="stylesheet" href=" ../style.css" type="text/css" />6 <link rel="stylesheet" href="<TMPL_VAR NAME="CSSPATH">" type="text/css" /> 7 7 <meta http-equiv="refresh" content="300" /> 8 <title>Munin :: <TMPL_VAR NAME="DOMAIN"></title>8 <title>Munin <TMPL_LOOP NAME="PATH">:: <TMPL_VAR ESCAPE="HTML" NAME="NAME"></TMPL_LOOP></title> 9 9 <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1" /> 10 10 <meta name="author" content="Auto-generated by Munin" /> … … 15 15 <td rowspan="2"><div class="logo"> </div></td> 16 16 <td valign="top"> 17 <h2><a href="../index.html">Overview</a> :: <TMPL_VAR ESCAPE="HTML" NAME="DOMAIN"></h2>17 <h2><TMPL_LOOP NAME="PATH"><TMPL_IF NAME="PATH"><a href="<TMPL_VAR NAME="PATH">"></TMPL_IF><TMPL_VAR NAME="NAME"><TMPL_IF NAME="PATH"></a> :: </TMPL_IF></TMPL_LOOP></title> 18 18 </td> 19 19 </tr> … … 21 21 <tr> 22 22 <td valign="top"> 23 <h2><TMPL_VAR ESCAPE="HTML" NAME=" DOMAIN"> :: [ <a href="comparison-day.html">day</a> <a href="comparison-week.html">week</a> <a href="comparison-month.html">month</a> <a href="comparison-year.html">year</a> ]</h2>23 <h2><TMPL_VAR ESCAPE="HTML" NAME="NAME"> :: [ <a href="comparison-day.html">day</a> <a href="comparison-week.html">week</a> <a href="comparison-month.html">month</a> <a href="comparison-year.html">year</a> ]</h2> 24 24 </td> 25 25 </tr></TMPL_IF> … … 30 30 <td class="linkbox"> 31 31 <ul> 32 <TMPL_LOOP NAME=" NODES">33 <li><span class="domain"><a href="<TMPL_VAR NAME="NODE">.html"><TMPL_VAR ESCAPE="HTML" NAME="NODE"></a></span>32 <TMPL_LOOP NAME="GROUPS"> 33 <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 34 34 <ul> 35 <TMPL_LOOP NAME="CATEGORIES"> 36 <li><span class="domain"><a href="<TMPL_VAR NAME="NODE">.html#<TMPL_VAR NAME="NAME">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 35 <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 36 <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 37 <ul> 38 <TMPL_LOOP NAME="SERVICES"> 39 <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 40 </TMPL_LOOP> 41 </ul> 42 </li> 43 </TMPL_LOOP></TMPL_IF> 44 <TMPL_IF NAME="NGROUPS"> 45 <TMPL_LOOP NAME="GROUPS"> 46 <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 37 47 <ul> 38 <TMPL_LOOP NAME="SERVICES"> 39 <li><span class="host"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="NODE">-<TMPL_VAR NAME="SERVICE">.html"><TMPL_VAR ESCAPE="HTML" NAME="LABEL"></a></span></li> 40 </TMPL_LOOP> 48 <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 49 <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 50 <ul> 51 <TMPL_LOOP NAME="SERVICES"> 52 <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 53 </TMPL_LOOP> 54 </ul> 55 </li> 56 </TMPL_LOOP></TMPL_IF> 57 <TMPL_IF NAME="NGROUPS"> 58 <TMPL_LOOP NAME="GROUPS"> 59 <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 60 <ul> 61 <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 62 <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 63 <ul> 64 <TMPL_LOOP NAME="SERVICES"> 65 <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 66 </TMPL_LOOP> 67 </ul> 68 </li> 69 </TMPL_LOOP></TMPL_IF> 70 <TMPL_IF NAME="NGROUPS"> 71 </TMPL_IF> 41 72 </ul> 42 </li> 43 </TMPL_LOOP> 73 </li> 74 </TMPL_LOOP> 75 </TMPL_IF> 44 76 </ul> 45 </li> 46 </TMPL_LOOP> 77 </li> 78 </TMPL_LOOP> 79 </TMPL_IF> 80 </ul> 81 </li> 82 </TMPL_LOOP> 47 83 </ul> 48 84 </td></tr> … … 50 86 <tr> 51 87 <td class="linkbox"> 52 <TMPL_LOOP NAME="DOMAINS"> 53 <a href="../<TMPL_VAR NAME="DOMAIN">/index.html"><TMPL_VAR NAME="DOMAIN"></a> : 54 </TMPL_LOOP> 88 <TMPL_VAR NAME="PARENT"> :<TMPL_LOOP NAME="PEERS">: <TMPL_IF NAME="LINK"><a href="<TMPL_VAR NAME="LINK">"></TMPL_IF><TMPL_VAR NAME="NAME"><TMPL_IF NAME="LINK"></a></TMPL_IF></a> </TMPL_LOOP> 55 89 </td> 56 90 </tr> people/jo/multilevel-groups-2/server/munin-html.in
r1346 r1347 2 2 # -*- perl -*- 3 3 # 4 # Copyright (C) 2002-200 6Jimmy Olsen, Audun Ytterdal4 # Copyright (C) 2002-2007 Jimmy Olsen, Audun Ytterdal 5 5 # 6 6 # This program is free software; you can redistribute it and/or … … 315 315 } 316 316 317 print Dumper ($groups);318 319 317 # Draw main index 320 318 $template->param(GROUPS => $groups, … … 325 323 print FILE $template->output; 326 324 close FILE; 325 326 generate_group_templates ($groups); 327 327 328 328 exit 0; … … 636 636 unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => undef }; 637 637 } else { 638 unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "$peer.html" }; 638 if (defined $hash->{'graph_title'}) { 639 unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "$peer.html" }; 640 } else { 641 unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "../$peer/index.html" }; 642 } 639 643 } 640 644 } … … 649 653 my $cattrav = {}; 650 654 my $cats = []; 655 my $path = []; 656 my $rpath = undef; 657 my $ret = {}; 658 my $csspath; 651 659 652 660 foreach my $child (@{munin_get_children ($hash)}) { 653 661 if (defined $child->{"graph_title"}) { 654 push @$graphs, { "name" => munin_get_node_name ($child) }; 655 $cattrav->{ lc munin_get ($child, "graph_category", "other") } = 1; 662 my $childname = munin_get_node_name ($child); 663 my $childnode = {}; 664 push @$graphs, { "name" => $childname }; 665 $childnode->{'name'} = $child->{"graph_title"}; 666 $childnode->{'url'} = $base . $childname.".html"; 667 for (my $shrinkpath = $childnode->{'url'}, my $counter = 0; $shrinkpath; $shrinkpath =~ s/^[^\/]+\/?//, $counter++) { 668 $childnode->{'url'.$counter} = $shrinkpath; 669 } 670 push @{$cattrav->{ lc munin_get ($child, "graph_category", "other") }}, $childnode; 656 671 } elsif (ref ($child) eq "HASH") { 657 672 push @$groups, get_group_tree ($child, $base . munin_get_node_name ($child) . "/"); … … 660 675 661 676 # We need the categories in another format. 662 @$cats = map { { "name" => $_, "url" => $base."index.html#".$_, "state_".lc munin_category_status ($hash, $limits, $_, 1) => 1 } } sort keys %$cattrav; 663 664 return { 677 foreach my $cat (sort keys %$cattrav) { 678 my $obj = {}; 679 $obj->{'name'} = $cat; 680 $obj->{'url'} = $base."index.html#".$cat; 681 $obj->{'services'} = $cattrav->{$cat}; 682 $obj->{'state_'.lc munin_category_status ($hash, $limits, $cat, 1)} = 1; 683 for (my $shrinkpath = $obj->{'url'}, my $counter = 0; $shrinkpath =~ /\//; $shrinkpath =~ s/^[^\/]+\/*//, $counter++) { 684 print "DEBUG: Left is $shrinkpath\n"; 685 $obj->{'url'.$counter} = $shrinkpath; 686 } 687 push @$cats, $obj; 688 } 689 690 # ...and we need a couple of paths available. 691 @$path = reverse map { { "name" => $_, "path" => (defined $rpath?($rpath.="../")."index.html":($rpath="")) } } reverse ( "Overview", split ('\/', $base) ); 692 ($csspath = $path->[0]->{'path'}) =~ s/index.html$/style.css/; 693 694 $ret = { 665 695 "name" => munin_get_node_name ($hash), 666 696 "url" => $base . "index.html", 697 "path" => $path, 698 "depth" => scalar(split("/",$base."index.html"))-1, 699 "filename" => munin_get_html_filename ($hash), 700 "csspath" => $csspath, 667 701 "groups" => $groups, 668 702 "graphs" => $graphs, … … 671 705 "ngraphs" => scalar (@$graphs), 672 706 "ncategories" => scalar (@$cats), 707 "peers" => get_peer_nodes ($hash), 673 708 }; 709 print "DEBUG: Url for ", $ret->{'name'}, "is ", $ret->{'url'}, "\n"; 710 if ($ret->{'url'} ne "/index.html") { 711 for (my $shrinkpath = $ret->{'url'}, my $counter = 0; $shrinkpath =~ /\//; $shrinkpath =~ s/^[^\/]+\/*//, $counter++) { 712 $ret->{'url'.$counter} = $shrinkpath; 713 } 714 } 715 716 return $ret; 717 } 718 719 sub generate_group_templates { 720 my $arr = shift || return undef; 721 return undef unless ref ($arr) eq "ARRAY"; 722 723 print Dumper ($arr); 724 725 foreach my $key (@$arr) { 726 if (defined $key and ref ($key) eq "HASH") { 727 if (defined $key->{'ngroups'} and $key->{'ngroups'}) { 728 print "DEBUG: *** ".$key->{'name'}."\n"; 729 generate_group_templates ($key->{'groups'}); 730 731 my $grouptemplate = HTML::Template->new( 732 filename => munin_get ($config, "tmpldir", "")."/munin-domainview.tmpl", 733 die_on_bad_params => 0, 734 loop_context_vars => 1, 735 filter => sub { my $ref=shift; $$ref =~ s/URLX/URL$key->{'depth'}/g; } 736 ); 737 738 $grouptemplate->param ( 739 GROUPS => $key->{'groups'}, 740 PATH => $key->{'path'}, 741 CSSPATH => $key->{'csspath'}, 742 PEERS => $key->{'peers'}, 743 PARENT => $key->{'path'}->[-2]->{'name'} 744 ); 745 my $filename = $key->{'filename'}; 746 open (FILE, ">$filename") or 747 die "Cannot open $filename for writing: $!"; 748 print FILE $grouptemplate->output; 749 close FILE; 750 } 751 } 752 } 674 753 } 675 754 people/jo/multilevel-groups-2/server/style.css
r860 r1347 38 38 } 39 39 40 .service { 41 font-size: x-small; 42 font-weight: bold; 43 } 44 40 45 .center { 41 46 text-align: center;
