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=ea8b01261af960f84bea9e19afb2c09cf6daf388;hpb=775930991b5f7c40b0d2f66bfdf8600f0f84b218;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-hpacucli b/dsa-nagios-checks/checks/dsa-check-hpacucli index ea8b012..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,11 +64,14 @@ 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-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); @@ -84,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; @@ -92,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; @@ -207,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}.")"; }; @@ -236,6 +245,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 {