packages: nagios-plugin-check_raid/check_raid - blindly implement afacli
glen
glen at pld-linux.org
Thu Sep 10 11:10:58 CEST 2009
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
More information about the pld-cvs-commit
mailing list