Author: glen                         Date: Thu Sep 10 09:10:58 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- blindly implement afacli

---- Files affected:
packages/nagios-plugin-check_raid:
   check_raid (1.26 -> 1.27) 

---- Diffs:

================================================================
Index: packages/nagios-plugin-check_raid/check_raid
diff -u packages/nagios-plugin-check_raid/check_raid:1.26 
packages/nagios-plugin-check_raid/check_raid:1.27
--- packages/nagios-plugin-check_raid/check_raid:1.26   Thu Sep 10 09:50:10 2009
+++ packages/nagios-plugin-check_raid/check_raid        Thu Sep 10 11:10:53 2009
@@ -30,11 +30,11 @@
 # various raids
 my $mpt_status = find_prog('mpt-status');     # LSILogic MPT ServeRAID
 my $aaccli = find_prog('aaccli');             # Adaptec ServeRAID
+my $afacli = find_prog('afacli');             # Adaptec AACRAID
 my $lsraid = find_prog('lsraid');             # Linux, software RAID
 my $metastat = find_prog('metastat');         # Solaris, software RAID
 my $lsvg = find_prog('lsvg');                 # AIX LVM
 my $ipssend = find_prog('ipssend');           # Serveraid IPS
-my $afacli = find_prog('afacli');             # Adaptec RAID
 
 #####################################################################
 sub print_usage () {
@@ -259,7 +259,33 @@
 }
 
 sub check_afacli {
-       $message .= "afacli:not_supported ";
+       my @CMD = $afacli;
+       unshift(@CMD, $sudo) if $> and $sudo;
+
+       use IPC::Open2;
+
+       my ($read, $write);
+       my $pid = open2($read, $write, @CMD) or return;
+       print $write "open afa0\n";
+       print $write "container list /full\n";
+       print $write "exit\n";
+       close $write;
+
+       while (<$read>) {
+               if (my ($dsk, $stat) = /(\d:\d\d?:\d+)\s+\S+:\S+\s+(\S+)/) {
+                       next unless valid($dsk);
+                       $dsk =~ s/:/\//g;
+                       next unless valid($dsk);
+                       $message .= "aac:$dsk:$stat ";
+                       $status = $ERRORS{CRITICAL} if ($stat eq "Broken");
+                       $status = $ERRORS{WARNING} if (!$status and $stat eq 
"Rebuild");
+                       $status = $ERRORS{WARNING} if (!$status and $stat eq 
"Bld/Vfy");
+                       $status = $ERRORS{CRITICAL} if ($stat eq "Missing");
+                       $status = $ERRORS{WARNING} if (!$status and $stat eq 
"Verify");
+                       $status = $ERRORS{WARNING} if (!$status and $stat eq 
"VfyRepl");
+               }
+       }
+       close $read;
 }
 
 sub check_mpt {
@@ -449,17 +475,17 @@
 
 $status = $ERRORS{OK}; $message = '';
 
-check_gdth if -d "/proc/scsi/gdth";               # Linux Gdth RAID
-check_megaide if -d "/proc/megaide";              # MegaIDE RAID controller
-check_mdstat  if -f "/proc/mdstat";               # Linux LVM
-check_mpt     if $mpt_status and -d "/proc/mpt";  # LSILogic MPT ServeRAID
-check_megaraid if -d "/proc/megaraid";            # MegaRAID
-check_aaccli if $aaccli and -d "/proc/scsi/aacraid";         # Adaptec 
ServeRAID
-check_lsraid  if $lsraid;                         # Linux, software RAID
-check_metastat if $metastat;                      # Solaris, software RAID
-check_vg      if $lsvg;                           # AIX LVM
-check_ips     if $ipssend;                        # Serveraid IPS
-check_afacli  if $afacli;                         # Adaptec RAID
+check_gdth if -d "/proc/scsi/gdth";                     # Linux Gdth RAID
+check_megaide if -d "/proc/megaide";                    # MegaIDE RAID 
controller
+check_mdstat  if -f "/proc/mdstat";                     # Linux LVM
+check_mpt     if $mpt_status and -d "/proc/mpt";        # LSILogic MPT 
ServeRAID
+check_megaraid if -d "/proc/megaraid";                  # MegaRAID
+check_aaccli if $aaccli and -d "/proc/scsi/aacraid";    # Adaptec ServeRAID
+check_afacli  if $afacli;                               # Adaptec AACRAID
+check_lsraid  if $lsraid;                               # Linux, software RAID
+check_metastat if $metastat;                            # Solaris, software 
RAID
+check_vg      if $lsvg;                                 # AIX LVM
+check_ips     if $ipssend;                              # Serveraid IPS
 # Can't do megaRAID controller, it needs X and java (yuck)
 
 if( $message ) {
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/nagios-plugin-check_raid/check_raid?r1=1.26&r2=1.27&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to