retire da-backup checks
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-raid-mpt
index f4f3407..6cf9261 100755 (executable)
@@ -1,6 +1,25 @@
 #!/usr/bin/perl -Tw
 
 # Copyright (C) 2008 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
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 # Need to allow /usr/local/bin/tw_cli info c0 u0 status in sudoers:
 #
@@ -36,17 +55,15 @@ my $command = "sudo $MPT_STATUS -s";
 open (MPT, "$command|") or die ("Cannot run $command: $!\n");
 my @tw=<MPT>;
 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 +83,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;