X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-checks%2Fchecks%2Fdsa-check-hpacucli;h=8bbb7ebe5a4ce1698203a82dd0f38bda2e1112ed;hb=7924159a5804a4a54bd697c2abe0ffddee8b984c;hp=55d8ce79f71d44c68c2450ddff1588b02f02f5c1;hpb=fc44623635620fb4ee128a81db1ef4f9d4b0dd61;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-hpacucli b/dsa-nagios-checks/checks/dsa-check-hpacucli index 55d8ce7..8bbb7eb 100755 --- a/dsa-nagios-checks/checks/dsa-check-hpacucli +++ b/dsa-nagios-checks/checks/dsa-check-hpacucli @@ -41,7 +41,7 @@ my %CODE = ( my $EXITCODE = 'OK'; $SIG{'__DIE__'} = sub { - print STDERR @_; + print @_; exit $CODE{'UNKNOWN'}; }; @@ -64,12 +64,14 @@ sub record($) { }; } -my $usage = "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--no-battery] [--ignore-transfer-speed= [--ignore-transfer-speed= ...]]\n"; +my $usage = "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--no-battery] [--ignore-controller=] [--no-controller-ok] [--ignore-transfer-speed= [--ignore-transfer-speed= ...]]\n"; my $params; Getopt::Long::Configure('bundling'); if (!GetOptions ( '--help' => \$params->{'help'}, '--no-battery' => \$params->{'no-battery'}, + '--no-controller-ok' => \$params->{'no-controller-ok'}, + '--ignore-controller=s' => \$params->{'ignore-controller'}, '--ignore-transfer-speed=s@' => \$params->{'ignore-transfer-speed'}, )) { die ($usage); @@ -85,6 +87,7 @@ my @controllers; for (@$ctrlallshow) { chomp; next if /^$/; + next if ($params->{'ignore-controller'} && /$params->{'ignore-controller'}/); if (/in Slot ([0-9a-z]+)/) { push @controllers, $1; next; @@ -93,8 +96,13 @@ for (@$ctrlallshow) { }; if (scalar @controllers == 0) { - print "UNKNONW: No smartarray controllers found with hpacucli\n"; - exit $CODE{'UNKNOWN'} + if ($params->{'no-controller-ok'}) { + print "No smartarray controllers found with hpacucli\n"; + exit $CODE{'OK'} + } else { + print "UNKNOWN: No smartarray controllers found with hpacucli\n"; + exit $CODE{'UNKNOWN'} + } }; my @resultstr; @@ -208,11 +216,11 @@ for my $slot (sort @controllers) { record('WARNING'); push @{$status{'unknown transfer speed'}}, $drive; } elsif (ref($expected) eq 'ARRAY') { - if (scalar(grep { $value{$key} eq $_ } @$expected) == 0) { + if (scalar(grep { uc($value{$key}) eq uc($_) } @$expected) == 0) { record('WARNING'); push @{$status{'bad transfer speed'}}, $drive."(".$value{$key}.")"; }; - } elsif ($value{$key} ne $expected) { + } elsif (uc($value{$key}) ne uc($expected)) { record('WARNING'); push @{$status{'bad transfer speed'}}, $drive."(".$value{$key}.")"; };