|
From: Bob T. <bt...@us...> - 2003-11-26 23:01:06
|
Update of /cvsroot/benson/benson3/scripts/cgi
In directory sc8-pr-cvs1:/tmp/cvs-serv22120
Added Files:
alertview.cgi.tmpl
Log Message:
Now I have added the alertview...
--- NEW FILE: alertview.cgi.tmpl ---
#!/usr/local/bin/perl -I/tmp/benson3/lib/perl/
use CGI;
use Benson;
use POSIX;
use strict;
my %severity;
$severity{"informational"} = { color => "#0000AA", weight => "1"};
$severity{"warning"} = { color => "#AAAA00", weight => "2"};
$severity{"serious"} = { color => "#DDAA00", weight => "3"};
$severity{"fatal"} = { color => "#AA0000", weight => "4"};
$severity{"emergency"} = { color => "#FF00AA", weight => "5"};
my $queue = new Benson;
my $query = new CGI;
my $date_and_time = "null";
my $sort_field = $query->param("sort_field") || "severity";
my $sort_type = $query->param("sort_type") || "ascend";
my $alerts_ref = $queue->sorted_href_alert_list();
my %alertlist = %{$alerts_ref};
sub by_field {
my ($a_agent, $a_severity, $a_subsystem, $a_message) = split /\:/, $a;
my ($b_agent, $b_severity, $b_subsystem, $b_message) = split /\:/, $b;
if($sort_field eq "severity") {
$severity{$a_severity}->{weight} <=> $severity{$b_severity}->{weight};
} elsif($sort_field eq "agent") {
$a_agent cmp $b_agent;
} elsif($sort_field eq "subsystem") {
$a_subsystem cmp $b_subsystem;
} elsif($sort_field eq "message") {
$a_message cmp $b_message;
}
}
my @sorted_rows;
if($sort_type eq "ascend") {
@sorted_rows = reverse sort by_field keys %alertlist;
} elsif ($sort_type eq "descend") {
@sorted_rows = sort by_field keys %alertlist;
}
my $severity_img_field = qq{<img border="0" src="/images/not-sorted.gif" usemap="#severity-sorted">};
my $agent_img_field = qq{<img border="0" src="/images/not-sorted.gif" usemap="#agent-sorted">};
my $subsystem_img_field = qq{<img border="0" src="/images/not-sorted.gif" usemap="#subsystem-sorted">};
my $message_img_field = qq{<img border="0" src="/images/not-sorted.gif" usemap="#message-sorted">};
if($sort_field eq "severity") {
$severity_img_field = qq{<img border="0" src="/images/asc-sorted.gif" usemap="#severity-sorted">};
if($sort_type eq "descend") {
$severity_img_field = qq{<img border="0" src="/images/dsc-sorted.gif" usemap="#severity-sorted">};
}
} elsif ($sort_field eq "agent") {
$agent_img_field = qq{<img border="0" src="/images/asc-sorted.gif" usemap="#agent-sorted">};
if($sort_type eq "descend") {
$agent_img_field = qq{<img border="0" src="/images/dsc-sorted.gif" usemap="#agent-sorted">};
}
} elsif ($sort_field eq "subsystem") {
$subsystem_img_field = qq{<img border="0" src="/images/asc-sorted.gif" usemap="#subsystem-sorted">};
if($sort_type eq "descend") {
$subsystem_img_field = qq{<img border="0" src="/images/dsc-sorted.gif" usemap="#subsystem-sorted">};
}
} elsif ($sort_field eq "message") {
$message_img_field = qq{<img border="0" src="/images/asc-sorted.gif" usemap="#message-sorted">};
if($sort_type eq "descend") {
$message_img_field = qq{<img border="0" src="/images/dsc-sorted.gif" usemap="#message-sorted">};
}
}
print <<EOT;
Content-type: text/html
<html>
<body bgcolor="#FFFFFF">
<map name="severity-sorted">
<area href="/cgi-bin/alertview.cgi?sort_field=severity&sort_type=descend" alt="Descending" coords="0,0,15,15">
<area href="/cgi-bin/alertview.cgi?sort_field=severity&sort_type=ascend" alt="Ascending" coords="15,0,30,15">
</map>
<map name="agent-sorted">
<area href="/cgi-bin/alertview.cgi?sort_field=agent&sort_type=descend" alt="Descending" coords="0,0,15,15">
<area href="/cgi-bin/alertview.cgi?sort_field=agent&sort_type=ascend" alt="Ascending" coords="15,0,30,15">
</map>
<map name="subsystem-sorted">
<area href="/cgi-bin/alertview.cgi?sort_field=subsystem&sort_type=descend" alt="Descending" coords="0,0,15,15">
<area href="/cgi-bin/alertview.cgi?sort_field=subsystem&sort_type=ascend" alt="Ascending" coords="15,0,30,15">
</map>
<map name="message-sorted">
<area href="/cgi-bin/alertview.cgi?sort_field=message&sort_type=descend" alt="Descending" coords="0,0,15,15">
<area href="/cgi-bin/alertview.cgi?sort_field=message&sort_type=ascend" alt="Ascending" coords="15,0,30,15">
</map>
<input type="button" value="Register Host" onclick="openregisterwindow()">
<input type="button" value="Suppress Host" onclick="opensuppresswindow()">
<center>
<form action="/cgi-bin/alertview.cgi" method="post">
<b>Alert View</b><br>
Current Time (as of refresh): <b>$date_and_time</b>
<table border="1" bgcolor="#FFFFF0" width="100%">
<tr>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>+/-</b></font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>ACK</b><input type="button"
value="X" onclick="javascript: toggle(this);"></font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>SUP</b></font></td>
<td background="/images/header.gif" align="right"><font color="#FFFFFF"><b>Agent</b>$agent_img_field</font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>Timestamp</b></font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>Severity</b>$severity_img_field</font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>Subsystem</b>$subsystem_img_field</font></td>
<td background="/images/header.gif" align="left"><font color="#FFFFFF"><b>Message</b>$message_img_field</font></td>
<td background="/images/header.gif" align="center"><font color="#FFFFFF"><b>#</b></font></td>
</tr>
EOT
foreach my $key (@sorted_rows) {
my $identity = $alertlist{$key}->{first_id};
my ($timestamp, $alerthash, $sequence) = split /\./, $identity;
my $date_str = POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime($timestamp));
my $agent = $alertlist{$key}->{agent};
my $sev = $alertlist{$key}->{severity};
my $subsystem = $alertlist{$key}->{subsystem};
my $message = $alertlist{$key}->{message};
print <<EOT;
<tr>
<td align="center"><b>(!)</b></td>
<td align="center"><input type="checkbox" name="id:$identity"></td>
<td align="center"><input type="checkbox" name="sup:$agent"></td>
<td align="right">$agent</td>
<td align="center">$date_str</td>
<td align="center" bgcolor="$severity{$sev}->{color}"><font color="#FFFFFF"><b>$sev</b></font></td>
<td align="center">$subsystem</td>
<td>$message</td>
<td>-1</td>
</tr>
EOT
}
print <<EOT;
</table>
EOT
|