--- loncom/cgi/clusterstatus.pl 2003/08/01 14:47:44 1.13 +++ loncom/cgi/clusterstatus.pl 2003/08/01 19:20:26 1.14 @@ -3,7 +3,7 @@ $|=1; # The LearningOnline Network with CAPA # Cluster Status # -# $Id: clusterstatus.pl,v 1.13 2003/08/01 14:47:44 www Exp $ +# $Id: clusterstatus.pl,v 1.14 2003/08/01 19:20:26 www Exp $ use lib '/home/httpd/lib/perl/'; use LONCAPA::Configuration; @@ -19,6 +19,7 @@ my %connectionstatus=(); my %perlvar=(); my $mode; +my $concount=0; sub select_form { my ($def,$name,%hash) = @_; @@ -62,7 +63,7 @@ sub request { $reply='local_unknown'; } else { - my $ua=new LWP::UserAgent(timeout => 15); + my $ua=new LWP::UserAgent(timeout => 10); my $request=new HTTP::Request('GET', "http://".$hostname{$local}.$url); @@ -92,10 +93,15 @@ sub connected { unless ($hostname{$remote}) { return 'remote_unknown'; } my $url='/cgi-bin/ping.pl?'.$remote; # -# Slowly phase this in: if not cached, only do 10 percent of the cases +# Slowly phase this in: if not cached, only do 5 percent of the cases, +# but always do the first five. # unless ($FORM{&key($local,$url)}) { - unless (rand>0.95) { return 'not_yet'; } + unless (($concount<=5) || (rand>0.95)) { + return 'not_yet'; + } else { + $concount++; + } } # # Actually do the query @@ -483,13 +489,27 @@ foreach $local (sort keys %hostname) { print ''.$local.''; foreach my $remote (sort keys %hostname) { if ($connectionstatus{$local.'_TO_'.$remote} eq 'not_yet') { - print 'not yet tested'; + my $cellcolor='#FFFFFF'; + if ($local eq $remote) { $cellcolor='#DDDDDD'; } + print 'not yet tested'; } elsif ($connectionstatus{$local.'_TO_'.$remote} eq 'ok') { + my $cellcolor='#BBDDBB'; + if ($local eq $remote) { $cellcolor='#99DD99'; } print -'ok'; +'ok'; } else { + my $cellcolor='#DDBBBB'; + if ($connectionstatus{$local.'_TO_'.$remote} eq 'local_error') { + if ($local eq $remote) { + $cellcolor='#DD88AA'; + } else { + $cellcolor='#DDAACC'; + } + } else { + if ($local eq $remote) { $cellcolor='#DD9999'; } + } print - ''. + ''. $connectionstatus{$local.'_TO_'.$remote}.'
'; &lonc($local); &lond($remote); print '';