#!/usr/bin/perl use CGI; use lib qw(../cgi-lib); use POSIX qw(strftime); use siteconfig; use parseFile; use libUtil; use strict; my $PROC_MAIN_PAGE = $siteconfig::PROC_MAIN_PAGE; #"../cgi-data/procStatus.html" my $ERROR_PAGE = $siteconfig::ERROR_PAGE; # "../cgi-data/error.html"; my $ERROR_LOG = $siteconfig::PROC_ERROR_LOG; #"procerr.log"; my $PROC_STATUS_SCRIPT = $siteconfig::PROC_STATUS_SCRIPT; #"/hci/root3.7.1P/bin/hciprocstatus"; my $CONN_STATUS_CGI = $siteconfig::CONN_STATUS_CGI; #connStatus.cgi my $IMG_DIR = $siteconfig::IMG_DIR; #/demo/img my $CSS_DIR = $siteconfig::CSS_DIR; #/demo/script my $HCI_PROFILE = $siteconfig::HCI_PROFILE; #/home/hci/.cluster/hci.profile my $ARROW_UP = "\"\""; my $ARROW_DOWN = "\"\""; sub getProcStatus{ my $site = $_[0]; my $input = `$PROC_STATUS_SCRIPT 2>&1`; #Split by line my @list = split(/\n/, $input); my ($i, %proc, %stat, %msg, $output); #Ignore the first 2 lines...(verify title, else error returned) if ( ($list[0] =~ /Process/) && ($list[0] =~ /State/) && ($list[0] =~ /Message/)){ for ($i=2; $i<=$#list; $i++){ my @line = (substr($list[$i],0,15), substr($list[$i],16,9), substr($list[$i],25,-1)); #Remove space char and \n from data, and save it into associative arrays... $line[0] =~ s/ //gs; $line[1] =~ s/ //gs; $line[2] =~ s/\n//gs; $proc{$line[0]} = $line[0]; $stat{$line[0]} = $line[1]; $msg{$line[0]} = $line[2]; } my ($key, $count) = ("",0); foreach $key (sort keys %proc){ my ($color, $upkey, $img) = ("",$key,""); $upkey =~ tr/a-z/A-Z/; if ($stat{$key} =~ /running/i){ $color = "#80CC65"; #80FF80; $img = $ARROW_UP; }else{ $color = "#F98580"; #FF8080; $img= $ARROW_DOWN; } #if ($count % 2) { $color = "#F0F0F0"; }else{ $color = "#FFFFFF"; } #$count++; #$output .="\n". # "\n$upkey". $output .="\n". "\n". "\n". "\n". "$stat{$key}". "\n". "\n$msg{$key}". "\n\n"; } }else{ #Error when getting process -- append error to log file $output = "
$input
" . "

"; libUtil::logError($ERROR_LOG,$input); } return $output; } sub main{ # print CGI::header(-expires=>'yesterday',-pragma=>'no-cache'); # print CGI::header; # print "Cache-Control: no-cache"; my $query = new CGI(); my ($site, $output, $res, @site_list, %info); print $query->header(-expires=>'now'); $info{"BANNER_COLOR"} = libUtil::bannerByHost(); $info{"CURDATE"} = strftime "%B %d %Y, %H:%M:%S", localtime(); $info{"IMG_DIR"} = $IMG_DIR; $info{"CSS_DIR"} = $CSS_DIR; ($res, @site_list) = libUtil::getSiteList(); #Set env var according to site... if (defined($query->param('site'))){ $site = $query->param('site'); }else{ $site = $site_list[0]; } #No site found... if ($res == 0){ $info{"SITE"} = "-No site-"; $info{"SITE"} =~ tr/a-z/A-Z/; $info{"SITE_LC"} = "-No site-"; #Site in lower case $info{"SITE_SELECTION"} = ""; $info{"PROC_STATUS"} = "". "NO SITE FOUND. Verify that site list is defined in $HCI_PROFILE." . "
"; }else{ libUtil::setEnvVar($site); $info{"SITE"} = $site; $info{"SITE"} =~ tr/a-z/A-Z/; $info{"SITE_LC"} = $site; #Site in lower case while ($res = shift(@site_list)){ my $res_up = $res; $res_up =~ tr/a-z/A-Z/; if ($res eq $site){ $info{"SITE_SELECTION"} .= "\n"; }else{ $info{"SITE_SELECTION"} .= "\n"; } } $info{"PROC_STATUS"} = &getProcStatus($site); } $output = parseFile::parseTemplate($PROC_MAIN_PAGE,\%info); print $output; } &main();