Diff for /loncom/cgi/clusterstatus.pl between versions 1.16 and 1.23

version 1.16, 2003/08/05 18:33:08 version 1.23, 2003/09/14 19:00:03
Line 1 Line 1
 #!/usr/bin/perl  #!/usr/bin/perl
 $|=1;  $|=1;
 # The LearningOnline Network with CAPA  # Generates a html page showing various sataus reports about the cluster
 # Cluster Status  
 #  
 # $Id$  # $Id$
   #
   # Copyright Michigan State University Board of Trustees
   #
   # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   #
   # LON-CAPA is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2 of the License, or
   # (at your option) any later version.
   #
   # LON-CAPA is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with LON-CAPA; if not, write to the Free Software
   # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   #
   # /home/httpd/html/adm/gpl.txt
   #
   # http://www.lon-capa.org/
   #
   
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA::Configuration;  use LONCAPA::Configuration;
Line 26  my $fromcache; Line 47  my $fromcache;
 my %domaindescription = ();  my %domaindescription = ();
 my %domain_auth_def = ();  my %domain_auth_def = ();
 my %domain_auth_arg_def = ();  my %domain_auth_arg_def = ();
   my %domain_lang_def=();
   my %domain_city=();
   my %domain_longi=();
   my %domain_lati=();
   
 my %hostname=();  my %hostname=();
 my %hostip=();  my %hostip=();
Line 212  sub server { Line 237  sub server {
     print &otherwindow($local,'/server-status','Server Status');      print &otherwindow($local,'/server-status','Server Status');
 }  }
   
   sub announcement {
       my $local=shift;
       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: <font size="1">';
       foreach my $remote (sort keys %hostname) {
    unless ($local eq $remote) {
       &reroute($local,$remote);
    }
       }
       print '</font>';
   }
   
 # ========================================================= Produce a green bar  # ========================================================= Produce a green bar
 sub bar {  sub bar {
     my $parm=shift;      my $parm=shift;
Line 233  sub serverstatus { Line 292  sub serverstatus {
 <tr><td bgcolor="#BBDDBB"><font color="#225522" face="arial"><b>  <tr><td bgcolor="#BBDDBB"><font color="#225522" face="arial"><b>
 $local $hostdom{$local}</b> <tt>($hostname{$local}; $hostrole{$local})</tt>  $local $hostdom{$local}</b> <tt>($hostname{$local}; $hostrole{$local})</tt>
 <br />$domaindescription{$hostdom{$local}}  <br />$domaindescription{$hostdom{$local}}
   $domain_city{$hostdom{$local}}
 </font></th></tr><tr><td bgcolor="#DDDDBB"><font color="#225522">  </font></th></tr><tr><td bgcolor="#DDDDBB"><font color="#225522">
 ENDHEADER  ENDHEADER
     &login($local);&server($local);&users($local);&versions($local);      &login($local);&server($local);&users($local);&versions($local);
       &announcement($local);
     &loncron($local);&lond($local);&lonc($local);&runloncron($local);      &loncron($local);&lond($local);&lonc($local);&runloncron($local);
     print "</font></td></tr>";      print "</font></td></tr>";
     if ($trouble) {      if ($trouble) {
  print ("<tr><td bgcolor='#DDBBBB'><font color='#552222' size='+2'>$trouble</font></td></tr>");   print ("<tr><td bgcolor='#DDBBBB'><font color='#552222' size='+2'>$trouble</font></td></tr>");
     }      }
     print "<tr><td bgcolor='#BBBBBB'>";      print "<tr><td bgcolor='#BBBBBB'>";
   # re-routing
       if ($host{$local.'_reroute'}) {
    print "<br />Reroute: ".$host{$local.'_reroute'};
    &takeonline($local);
       }
 # version  # version
     if ($host{$local.'_version'}) {      if ($host{$local.'_version'}) {
  print "<br />Version: ".$host{$local.'_version'}   print "<br />Version: ".$host{$local.'_version'}
Line 276  ENDHEADER Line 342  ENDHEADER
     if ($host{$local.'_errors'}) {      if ($host{$local.'_errors'}) {
  print "<br />loncron errors: ".$host{$local.'_errors'};   print "<br />loncron errors: ".$host{$local.'_errors'};
     }      }
       print "</td></tr><tr><td bgcolor='#DDDDDD'>";
       &allreroutes($local);
     print "</td></tr></table><br />";      print "</td></tr></table><br />";
 }  }
   
Line 303  sub resetvars { Line 371  sub resetvars {
    $stat_total=0;     $stat_total=0;
    $stat_notyet=0;     $stat_notyet=0;
    $stat_fromcache=0;     $stat_fromcache=0;
      $concount=0;
    undef %host;     undef %host;
    %host=();     %host=();
 }  }
Line 361  foreach my $local (sort keys %hostname) Line 429  foreach my $local (sort keys %hostname)
  }   }
  $host{$local.'_load'}=$userstatus{'loadavg'};   $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 <tt>'.$reroute{'server'}.
                      '</tt>, domain: '.$reroute{'domain'}.
    ' (since '.localtime($reroute{'time'}).')';
    } else {
       $host{$local.'_reroute'}='offline';
    }
       }
 # -- Check mysql status  # -- Check mysql status
     &statuslist($local,'Database');      &statuslist($local,'Database');
     my %mysql=&replyhash($local,'/lon-status/mysql.txt',3600);      my %mysql=&replyhash($local,'/lon-status/mysql.txt',3600);
Line 431  sub reports { Line 512  sub reports {
        "<table cellspacing='3' cellpadding='3' border='0' bgcolor='#225522'>".         "<table cellspacing='3' cellpadding='3' border='0' bgcolor='#225522'>".
        "<tr><td bgcolor='#225522'>&nbsp;</td>";         "<tr><td bgcolor='#225522'>&nbsp;</td>";
  foreach my $remote (sort keys %hostname) {   foreach my $remote (sort keys %hostname) {
     print '<th bgcolor="#DDDDBB">'.$remote.'</th>';      print '<td bgcolor="#DDDDBB">'.$remote.'</td>';
  }   }
  print "</tr>\n";   print "</tr>\n";
 # connection matrix  # connection matrix
  foreach my $local (sort keys %hostname) {   foreach my $local (sort keys %hostname) {
     print '<tr><th bgcolor="#DDDDBB">'.$local.'</th>';      print '<tr><td bgcolor="#DDDDBB">'.$local.'</td>';
     foreach my $remote (sort keys %hostname) {      foreach my $remote (sort keys %hostname) {
  if ($connectionstatus{$local.'_TO_'.$remote} eq 'not_yet') {   if ($connectionstatus{$local.'_TO_'.$remote} eq 'not_yet') {
     my $cellcolor='#FFFFFF';      my $cellcolor='#FFFFFF';
Line 448  sub reports { Line 529  sub reports {
     print       print 
 '<td bgcolor="'.$cellcolor.'"><font color="#225522" face="arial"><b>ok</b></td>';  '<td bgcolor="'.$cellcolor.'"><font color="#225522" face="arial"><b>ok</b></td>';
  } else {   } else {
     my $cellcolor='#DDBBBB';      my $cellcolor='#DDCCAA';
     if ($connectionstatus{$local.'_TO_'.$remote} eq 'local_error') {      if ($connectionstatus{$local.'_TO_'.$remote} eq 'local_error') {
  if ($local eq $remote) {    if ($local eq $remote) { 
     $cellcolor='#DD88AA';       $cellcolor='#DD88AA'; 
Line 456  sub reports { Line 537  sub reports {
     $cellcolor='#DDAACC';      $cellcolor='#DDAACC';
  }   }
     } else {      } else {
  if ($local eq $remote) { $cellcolor='#DD9999'; }   if ($local eq $remote) { $cellcolor='#DDBB77'; }
     }      }
     print       print 
   '<td bgcolor="'.$cellcolor.'"><font color="#552222" size="-2">'.    '<td bgcolor="'.$cellcolor.'"><font color="#552222" size="-2">'.
Line 544  sub reports { Line 625  sub reports {
     if ($host{$local.'_checkrpms_doomed'}>100) {      if ($host{$local.'_checkrpms_doomed'}>100) {
  $trouble='RPMs outdated.<br />';   $trouble='RPMs outdated.<br />';
     }      }
       if ($host{$local.'_reroute'}) {
    $trouble='Rerouting<br >';
       }
     if ($trouble) { $count++; &serverstatus($local,$trouble); }      if ($trouble) { $count++; &serverstatus($local,$trouble); }
  }   }
  unless ($count) { print "No mayor trouble."; }   unless ($count) { print "No mayor trouble."; }
Line 641  delete $perlvar{'lonSqlAccess'}; # remov Line 725  delete $perlvar{'lonSqlAccess'}; # remov
        while (<$fh>) {         while (<$fh>) {
            next if (/^(\#|\s*$)/);             next if (/^(\#|\s*$)/);
            chomp;             chomp;
            my ($domain, $domain_description, $def_auth, $def_auth_arg)             my ($domain, $domain_description, $def_auth, $def_auth_arg,
                = split(/:/,$_,4);         $def_lang, $city, $longi, $lati) = split(/:/,$_);
            $domain_auth_def{$domain}=$def_auth;     $domain_auth_def{$domain}=$def_auth;
            $domain_auth_arg_def{$domain}=$def_auth_arg;             $domain_auth_arg_def{$domain}=$def_auth_arg;
            $domaindescription{$domain}=$domain_description;     $domaindescription{$domain}=$domain_description;
      $domain_lang_def{$domain}=$def_lang;
      $domain_city{$domain}=$city;
      $domain_longi{$domain}=$longi;
      $domain_lati{$domain}=$lati;
        }         }
     }      }
 }  }

Removed from v.1.16  
changed lines
  Added in v.1.23


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>