--- loncom/cgi/clusterstatus.pl 2003/09/01 03:37:27 1.21
+++ loncom/cgi/clusterstatus.pl 2005/04/13 18:30:46 1.24
@@ -1,7 +1,7 @@
#!/usr/bin/perl
$|=1;
# Generates a html page showing various sataus reports about the cluster
-# $Id: clusterstatus.pl,v 1.21 2003/09/01 03:37:27 albertel Exp $
+# $Id: clusterstatus.pl,v 1.24 2005/04/13 18:30:46 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -242,6 +242,35 @@ sub announcement {
print &otherwindow($local,'/announcement.txt','Announcement');
}
+sub takeonline {
+ my $local=shift;
+ print &otherwindow($local,'/cgi-bin/takeonline.pl','Take online');
+}
+
+sub takeoffline {
+ my $local=shift;
+ print &otherwindow($local,'/cgi-bin/takeoffline.pl','Take offline');
+}
+
+sub reroute {
+ my ($local,$remote)=@_;
+ print &otherwindow($local,'/cgi-bin/takeoffline.pl?'.
+ $hostname{$remote}.'&'.$hostdom{$local}
+ ,$remote)."\n";
+}
+
+sub allreroutes {
+ my $local=shift;
+ &takeoffline($local);
+ print ' Reroute to: ';
+ foreach my $remote (sort keys %hostname) {
+ unless ($local eq $remote) {
+ &reroute($local,$remote);
+ }
+ }
+ print '';
+}
+
# ========================================================= Produce a green bar
sub bar {
my $parm=shift;
@@ -274,6 +303,11 @@ ENDHEADER
print ("
$trouble |
");
}
print "";
+# re-routing
+ if ($host{$local.'_reroute'}) {
+ print " Reroute: ".$host{$local.'_reroute'};
+ &takeonline($local);
+ }
# version
if ($host{$local.'_version'}) {
print " Version: ".$host{$local.'_version'}
@@ -308,6 +342,8 @@ ENDHEADER
if ($host{$local.'_errors'}) {
print " loncron errors: ".$host{$local.'_errors'};
}
+ print " |
";
+ &allreroutes($local);
print " |
";
}
@@ -393,6 +429,19 @@ foreach my $local (sort keys %hostname)
}
$host{$local.'_load'}=$userstatus{'loadavg'};
}
+# -- Check reroute status
+ &statuslist($local,'Reroute');
+ my %reroute=&replyhash($local,'/lon-status/reroute.txt',1800);
+ if ($reroute{'status'} eq 'rerouting') {
+ if ($reroute{'server'}) {
+ $host{$local.'_reroute'}=
+ 'Rerouting to '.$reroute{'server'}.
+ ', domain: '.$reroute{'domain'}.
+ ' (since '.localtime($reroute{'time'}).')';
+ } else {
+ $host{$local.'_reroute'}='offline';
+ }
+ }
# -- Check mysql status
&statuslist($local,'Database');
my %mysql=&replyhash($local,'/lon-status/mysql.txt',3600);
@@ -561,7 +610,7 @@ sub reports {
}
if ($host{$local.'_errors'}) {
$trouble='Has loncron errors.
';
- } elsif ($host{$local.'_loncron_doomed'}>600) {
+ } elsif ($host{$local.'_loncron_doomed'}>2500) {
$trouble='High loncron count.
';
}
if ($host{$local.'_load_doomed'}>5) {
@@ -576,6 +625,9 @@ sub reports {
if ($host{$local.'_checkrpms_doomed'}>100) {
$trouble='RPMs outdated.
';
}
+ if ($host{$local.'_reroute'}) {
+ $trouble='Rerouting
';
+ }
if ($trouble) { $count++; &serverstatus($local,$trouble); }
}
unless ($count) { print "No mayor trouble."; }