X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-checks%2Fchecks%2Fdsa-check-raid-mpt;h=3599c5efca73a764e7a0e0963e35d49bd8647923;hb=9aed11f98032df22f953a11f546b16539e66b34c;hp=f4f34078679b15b0d3e774eb48ee820eccd4af62;hpb=42e99da9d896a33803e763c746e9a103183b6b34;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-raid-mpt b/dsa-nagios-checks/checks/dsa-check-raid-mpt index f4f3407..3599c5e 100755 --- a/dsa-nagios-checks/checks/dsa-check-raid-mpt +++ b/dsa-nagios-checks/checks/dsa-check-raid-mpt @@ -36,17 +36,15 @@ my $command = "sudo $MPT_STATUS -s"; open (MPT, "$command|") or die ("Cannot run $command: $!\n"); my @tw=; close MPT; -if ($CHILD_ERROR) { # program failed - die("$command returned with non-zero exit code: ".($CHILD_ERROR / 256)."\n"); -}; +my $command_exitcode = $CHILD_ERROR; my $exit = $UNKNOWN; my $msg = ''; for my $line (@tw) { chomp $line; next if $line =~ /^$/; - my ($device, $num, $status) = $line =~ m#^(log_id|vol_id|phys_id)\s+([0-9]+)\s+(.*)$#; + my ($device, $num, $status) = $line =~ m/^(log_id|vol_id|phys_id)\s+([0-9]+)\s+(.*)$/; unless (defined($device) && defined($num) && defined($status)) { print "Cannot parse line '$line'\n"; exit $UNKNOWN; @@ -66,5 +64,10 @@ if ($msg eq '') { die ("exit is not UNKNOWN but $exit") if ($exit != $UNKNOWN); } +if ($command_exitcode && ($exit == $OK || $exit == $UNKNOWN)) { + $exit = $UNKNOWN; + $msg .= ($msg eq '' ? '' : '; '). "$command returned with non-zero exit code: ".($command_exitcode / 256); +} + print $msg,"\n"; exit $exit;