/usr/local/CPAN/Lemonldap-Cluster-Status/Lemonldap/Cluster/Statuslemonldap.pm


package Lemonldap::Cluster::Statuslemonldap;
#Copyright (C) 2005 by Eric German, <germanlinux@yahoo.fr>
# FILE  Statuslemonlda.pm
#    Lemonldap originaly written by Eric German who decided to publish him in
#    2003 under the terms of the GNU General Public License version 2.
########

use Lemonldap::Cluster::Status;
use Lemonldap::Config::Parameters;

use Apache::Constants qw (:common) ;
sub handler {
my $CONF;
my $FILE;
my $GLUE;

my $r = shift;
  my $p;
my %param;
$p=$r->args if $r->args ;
if ($p) { 
my @parax = split "&" , $p ;
my @pr;
foreach (@parax)  {
 (my $cle,my $val) = split "=" , $_;
 push @pr ,$cle;
 push @pr, $val;
     }
 %param = @pr ;

}
$FILE = $r->dir_config('LemonldapConfig');
$GLUE = $r->dir_config('LemonldapConfigIpcKey');
$GLUE = $r->dir_config('LemonldapConfigdbpath') unless $GLUE;
$CONF= Lemonldap::Config::Parameters->new (
                                                file => $FILE ,
                                              cache => $GLUE );
my $config=$CONF->getAllConfig();
########
# test the present of one parameter cluster
###
my $cluster = $param{'cluster'};
my $clu =$config->{cluster} ;
unless ($cluster)  {
#I don't find cluster i' ll take the first 
#
my @t =keys %$clu;
$cluster= $t[0]; 
}
my $cl =$config->{cluster}->{$cluster};
return OK unless $cl;
my %machine;

$machine{ADMIN} =$cluster;
my $cc = $cl->{node};
foreach (keys %$cc) {
$machine{$_} = $cc->{$_}{address};
}

my $re = Lemonldap::Cluster::Status->new ( %machine);
$re->analyze;
my $a=$re->PrintHtml;
if ($param{refresh}) {
my $t =$param{refresh};
$r->header_out('refresh',$t);

} 
$r->content_type('text/html');
$r->send_http_header;
$r->print($a);
return OK;

}
1;