[project @ peter@palfrader.org-20080809094038-47w9c4sxk38twte0]
[mirror/dsa-nagios.git] / dsa-nagios-nrpe-config / dsa-check-hpacucli
index 2bc260a..a3c42c7 100755 (executable)
@@ -90,9 +90,12 @@ for my $slot (sort @controllers) {
        for (@$pds) {
                chomp;
                next if /^$/;
-               next if /^ *array [A-Z]$/;
                next if (/^\S.*in Slot $slot/);
-               if (/^Error: The specified controller does not have any physical drives on it.$/) {
+               next if /^ *array [A-Z]$/;
+               if (/^ *(array [A-Z]) \(Failed\)$/) {
+                       record('CRITICAL');
+                       push @{$status{'Failed'}}, $1;
+               } elsif (/^Error: The specified controller does not have any physical drives on it.$/) {
                        $nodrives = 1;
                } elsif (/^ *physicaldrive (\S+) .* (OK|Predictive Failure|Failed|Rebuilding)(?:, spare)?\)$/) {
                        my $drive = $1;
@@ -143,7 +146,19 @@ for my $slot (sort @controllers) {
                my $expected;
                if ($type eq 'SCSI') {
                        $key = 'Transfer Speed';
-                       $expected = '320 MB/Sec';
+                       if (!defined $value{'Transfer Mode'}) {
+                               record('WARNING');
+                               push @{$status{'unknown transfer mode'}}, $drive;
+                               next;
+                       } elsif ($value{'Transfer Mode'} eq 'Ultra 3 Wide') {
+                               $expected = '160 MB/Sec';
+                       } elsif ($value{'Transfer Mode'} eq 'Ultra 320 Wide') {
+                               $expected = '320 MB/Sec';
+                       } else {
+                               record('WARNING');
+                               push @{$status{'unknown transfer mode'}}, $drive."(".$value{'Transfer Mode'}.")";
+                               next;
+                       };
                } elsif ($type eq 'SAS') {
                        $key = 'PHY Transfer Rate';
                        $expected = '3.0GBPS';