--- loncom/cgi/clusterstatus.pl 2002/02/18 23:45:23 1.1 +++ loncom/cgi/clusterstatus.pl 2003/02/25 21:56:48 1.7 @@ -5,8 +5,11 @@ $|=1; # (Versions # (Running loncron # 09/06/01 Gerd Kortemeyer) -# 02/18/02 Gerd Kortemeyer) -# +# 02/18/02,02/19/02 Gerd Kortemeyer) + +use lib '/home/httpd/lib/perl/'; +use LONCAPA::Configuration; + use LWP::UserAgent(); use HTTP::Headers; use IO::File; @@ -26,7 +29,7 @@ sub connected { my $response=$ua->request($request); - unless ($response->is_success) { return 'local_offline'; } + unless ($response->is_success) { return 'local_error'; } my $reply=$response->content; $reply=(split("\n",$reply))[0]; @@ -38,37 +41,94 @@ sub connected { print "Content-type: text/html\n\n". "\n"; -# ------------------------------------------------------------ Read access.conf -{ - my $config=IO::File->new("/etc/httpd/conf/access.conf"); - - while (my $configline=<$config>) { - if ($configline =~ /PerlSetVar/) { - my ($dummy,$varname,$varvalue)=split(/\s+/,$configline); - $perlvar{$varname}=$varvalue; - } - } - delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed - delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed -} +# -------------------- Read loncapa.conf (and by default, loncapa_apache.conf). +my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf'); +my %perlvar=%{$perlvarref}; +undef $perlvarref; # remove since sensitive and not needed +delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed +delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed # ------------------------------------------------------------- Read hosts file { my $config=IO::File->new("$perlvar{'lonTabDir'}/hosts.tab"); + $total=0; while (my $configline=<$config>) { + $configline=~s/#.*$//; + unless ($configline=~/\w/) { next; } my ($id,$domain,$role,$name,$ip)=split(/:/,$configline); $hostname{$id}=$name; $hostdom{$id}=$domain; $hostrole{$id}=$role; $hostip{$id}=$ip; + $total++; if (($role eq 'library') && ($id ne $perlvar{'lonHostID'})) { $libserv{$id}=$name; } } } -print "

Cluster Status

\n"; -print &connected('gerdl1','msul1'); - +print +"

Cluster Status

"; +print "Please be patient while building cluster status ...

\n"; +$table=''; + +$table.="". +""; +foreach $remote (sort keys %hostname) { + $table.="$remote"; +} +$table.=""; +foreach $local (sort keys %hostname) { + print "Checking $local: "; + $table.="$local
". + $hostrole{$local}.' '.$hostdom{$local}.'
'. + "". + $hostname{$local}."
". + "New Report". + ""; + foreach $remote (sort keys %hostname) { + $status=&connected($local,$remote); + if ($status eq 'ok') { + $table.="
". + "lonc". + " lond". + ""; + } + } + $table.="
\n"; + print "
\n"; +} +$table.="
From (local)To (remote)
"; +print $table; print "";