--- parse_log.cgi 2003/10/07 14:39:58 1.7 +++ parse_log.cgi 2003/10/07 20:24:45 1.8 @@ -8,8 +8,8 @@ use strict; use POSIX qw(strftime); -use CGI qw/:standard *table/; -use CGI::Carp qw(fatalsToBrowser); +use CGI; +#use CGI::Carp qw(fatalsToBrowser); use Data::Sorting qw(:arrays); use Time::ParseDate; use Time::Available; @@ -194,41 +194,37 @@ # generate output # -print header,start_html("mon availiability report"); +print $q->header,$q->start_html("mon availiability report"); # make some filters # -print start_form, - start_table({-border=>0,-cellspacing=>0,-cellpadding=>0}), - Tr(td( - em("Show just service/group:"),br, - checkbox_group(-name=>'sg_filter', +print $q->start_form,' + + +
+ Show just service/group:
+ ',$q->checkbox_group(-name=>'sg_filter', -values=>[keys %$sg_filter], -default=>[keys %$sg_filter], -linebreak=>'true', - ), - ),td( - em("Other options:"),br, + ),' +
+ Other options:
', $q->checkbox(-name=>'rep_reset',-checked=>0, - -label=>"show repeated failures on same service as individual failures"), - br, + -label=>"show repeated failures on same service as individual failures"),'
', $q->checkbox(-name=>'print_orphans',-checked=>0, - -label=>"show records which are not complete in this interval"), - br, + -label=>"show records which are not complete in this interval"),'
', $q->checkbox(-name=>'use_date_limit',-checked=>1, -label=>"use date limit from:"), - $q->textfield(-name=>'from_date',-size=>20,-default=>$from_date), - " to: ", - $q->textfield(-name=>'to_date',-size=>20,-default=>$to_date), - small('Using Time::ParseDate'), - br, - $q->checkbox(-name=>'use_time_limit',-checked=>1, -value=>'on', + $q->textfield(-name=>'from_date',-size=>20,-default=>$from_date),' to: ', + $q->textfield(-name=>'to_date',-size=>20,-default=>$to_date),' + Using Time::ParseDate +
+ ',$q->checkbox(-name=>'use_time_limit',-checked=>1, -value=>'on', -label=>"use time limit for each day:"), - $q->textfield(-name=>'from_time_interval',-size=>8,-default=>$from_time_interval), - " to: ", + $q->textfield(-name=>'from_time_interval',-size=>8,-default=>$from_time_interval),' to: ', $q->textfield(-name=>'to_time_interval',-size=>8,-default=>$to_time_interval), - br,"Days: ", + '
Days: ', $q->checkbox_group(-name=>'day_interval', -values=>[ sort { $a <=> $b } keys %days ], -labels=>\%days, @@ -239,10 +235,17 @@ Time::Available::DAY_THURSDAY, Time::Available::DAY_FRIDAY, ] - ), - $q->submit(-name=>'show',-value=>'Show report'), - )),end_table, - end_form; + ), + $q->submit(-name=>'show',-value=>'Show report'),' +
+ ',$q->end_form; + +# bail out of no data +if ($data && scalar @$data < 1) { + print $q->end_html; + exit; +} # dump report # @@ -280,28 +283,20 @@ # my @sorted = sorted_array( @$data, @sort_rules ); -print "-- sort: ",Dumper(@sort_rules)," (data: ".@$data." sorted: ".@sorted.") --\n",br,"-- dayMask: $dayMask --\n",br,"-- cache_key: $cache_key --\n",br if ($debug); - -print start_table({-border=>1,-cellspacing=>0,-cellpadding=>2,-width=>'100%'}); +print "-- sort: ",Dumper(@sort_rules)," (data: ".@$data." sorted: ".@sorted.") --\n
-- dayMask: $dayMask --\n
-- cache_key: $cache_key --\n
" if ($debug); -print Tr( - th("group/service"), - th({-bgcolor=>'#f0f0f0'},''. - &sort_link($q,'from','u').' from '. - &sort_link($q,'from','d').'', - br,$from_html - ), - th( ''. - &sort_link($q,'to','u').' to '. - &sort_link($q,'to','d').'', - br,$to_html - ), - th({-bgcolor=>'#e0e0e0'},''. - &sort_link($q,'dur','u').' duration '. - &sort_link($q,'dur','d').'' - ), - th("description") - ) if (scalar @sorted > 0); +print ' + + + '; my $downtime; # total downtime my $downinterval; # total downtime in time interval @@ -325,29 +320,32 @@ } $sg_count->{$row->{sg}}++; - print Tr( - td({-align=>'left',-valign=>'center'},$row->{sg}), - td({-align=>'right',-bgcolor=>'#f0f0f0'},$from), - td({-align=>'right'},d($row->{to})), - td({-align=>'center',-bgcolor=>'#e0e0e0'},$dur), - td({-align=>'left'},$row->{desc}), - ),"\n"; + print ' + + + + + + '; } # dump totals # +my $dur; foreach my $sg (keys %$downtime) { - my $dur; if ($downinterval->{$sg}) { $dur=dur($downinterval->{$sg})."
∑ ".dur($downtime->{$sg}).""; } else { $dur=dur($downtime->{$sg}); } - print Tr(td({-colspan=>3,-align=>'right'},"total for $sg:"), - td({-bgcolor=>'#e0e0e0',-align=>'right'},$dur), - td(small("in ".$sg_count->{$sg}." failures"))),"\n"; + print ' + + + '; } -print end_table; +print "
group/service', + &sort_link($q,'from','u'),' from ',&sort_link($q,'from','d'),''; +print '
',$from_html if ($from_html); +print '
', + &sort_link($q,'to','u'),' to ',&sort_link($q,'to','d'),''; +print '
',$to_html if ($to_html); +print '
', + &sort_link($q,'dur','u'),' duration ',&sort_link($q,'dur','d'),' + description
',$row->{sg},'',$from,'',d($row->{to}),'',$dur,'',$row->{desc},'
total for ',$sg,'',$dur,'in ',$sg_count->{$sg},' failures
", + $q->end_html; +