X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-checks%2Fchecks%2Fdsa-check-hpacucli;h=55d8ce79f71d44c68c2450ddff1588b02f02f5c1;hb=fc44623635620fb4ee128a81db1ef4f9d4b0dd61;hp=bf2fb17ed8a42a0572b5701b195084de2d6d5128;hpb=1f3669290d89e34640a423194b679b8343b822b6;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-hpacucli b/dsa-nagios-checks/checks/dsa-check-hpacucli index bf2fb17..55d8ce7 100755 --- a/dsa-nagios-checks/checks/dsa-check-hpacucli +++ b/dsa-nagios-checks/checks/dsa-check-hpacucli @@ -5,7 +5,7 @@ # # does _not_ check raid status. use arrayprobe for that. -# Copyright (c) 2008,2009 Peter Palfrader +# Copyright (c) 2008,2009,2010,2011 Peter Palfrader # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the @@ -64,11 +64,12 @@ sub record($) { }; } -my $usage = "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--ignore-transfer-speed= [--ignore-transfer-speed= ...]]\n"; +my $usage = "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--no-battery] [--ignore-transfer-speed= [--ignore-transfer-speed= ...]]\n"; my $params; Getopt::Long::Configure('bundling'); if (!GetOptions ( '--help' => \$params->{'help'}, + '--no-battery' => \$params->{'no-battery'}, '--ignore-transfer-speed=s@' => \$params->{'ignore-transfer-speed'}, )) { die ($usage); @@ -108,6 +109,7 @@ for my $slot (sort @controllers) { next if /^$/; next if (/^\S.*in Slot $slot/); next if /^ *array [A-Z]$/; + next if /^ *unassigned/; if (/^ *(array [A-Z]) \(Failed\)$/) { record('CRITICAL'); push @{$status{'Failed'}}, $1; @@ -179,34 +181,28 @@ for my $slot (sort @controllers) { push @{$status{'unknown transfer mode'}}, $drive."(".$value{'Transfer Mode'}.")"; next; }; - } elsif ($type eq 'SAS') { + } elsif ($type eq 'SAS' || $type eq 'SAS+') { $key = 'PHY Transfer Rate'; if ($value{'PHY Count'} eq '2') { if (defined($value{'Redundant Path(s)'})) { - $expected = '3.0GBPS, 3.0GBPS'; + $expected = [ '3.0GBPS, 3.0GBPS', '6.0GBPS, 6.0GBPS' ]; } else { - $expected = [ '3.0GBPS, Unknown', 'Unknown, 3.0GBPS' ]; + $expected = [ '3.0GBPS, Unknown', 'Unknown, 3.0GBPS', + '6.0GBPS, Unknown', 'Unknown, 6.0GBPS' ]; } } 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'; + $expected = [ '3.0GBPS', '6.0GBPS' ]; } } else { warn "Should not be here. Do not know what to do with type '$type'\n"; next; } - if (exists $params->{'ignore-transfer-speed'}) { + if ($params->{'ignore-transfer-speed'}) { if (grep { $drive eq $_ } @{$params->{'ignore-transfer-speed'}}) { push @{$status{'ignored transfer speed'}}, $drive."(".$value{$key}.")"; + next; }; - next; }; if (!defined $value{$key}) { record('WARNING'); @@ -241,6 +237,8 @@ for my $slot (sort @controllers) { my $status = $2; push @{$status{$status}}, $system; if ($status ne 'OK') { + next if ($params->{'no-battery'} && $system eq 'Cache'); + next if ($params->{'no-battery'} && $system eq 'Battery/Capacitor'); record('WARNING'); }; } else {