more ulogd-hosts
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-hpacucli
index 4942e92..ef79db8 100755 (executable)
@@ -5,7 +5,7 @@
 #
 # does _not_ check raid status.  use arrayprobe for that.
 
-# Copyright (c) 2008 Peter Palfrader <peter@palfrader.org>
+# Copyright (c) 2008,2009 Peter Palfrader <peter@palfrader.org>
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -124,8 +124,10 @@ for my $slot (sort @controllers) {
                my $type;
                if ($drive =~ /^[0-9]+:[0-9]+$/) { # scsi drives
                        $type = 'SCSI';
-               } elsif ($drive =~ /^[0-9]+I:[0-9]+:[0-9]+$/) { # SAS
+               } elsif ($drive =~ /^[0-9]+[EI]:[0-9]+:[0-9]+$/) { # SAS
                        $type = 'SAS';
+               } elsif ($drive =~ /^[0-9]+[C]:[0-9]+:[0-9]+$/) { # New 6GBPS SAS
+                       $type = 'SAS+';
                } else {
                        # I'm not going to run pass arguments of unknown form to the shell..
                        warn ("Unknown diskdrive ID $drive\n");
@@ -164,10 +166,21 @@ for my $slot (sort @controllers) {
                } elsif ($type eq 'SAS') {
                        $key = 'PHY Transfer Rate';
                        if ($value{'PHY Count'} eq '2') {
-                               $expected = '3.0GBPS, Unknown';
+                               if (defined($value{'Redundant Path(s)'})) {
+                                       $expected = '3.0GBPS, 3.0GBPS';
+                               } else {
+                                       $expected = '3.0GBPS, Unknown';
+                               }
                        } else {
                                $expected = '3.0GBPS';
                        }
+               } elsif ($type eq 'SAS+') {
+                       $key = 'PHY Transfer Rate';
+                       if ($value{'PHY Count'} eq '2') {
+                               $expected = '6.0GBPS, Unknown';
+                       } else {
+                               $expected = '6.0GBPS';
+                       }
                } else {
                        warn "Should not be here.  Do not know what to do with type '$type'\n";
                        next;