Warn if the parent zone has DS records for keys we do not have
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-hpasm
index 83f2ae6..e458283 100755 (executable)
@@ -9,6 +9,7 @@ use Getopt::Long;
 # requires hpasmcli
 
 # Copyright (c) 2009 Stephen Gran <steve@lobefin.net>
+# Copyright (c) 2009,2010,2012 Peter Palfrader
 #
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
@@ -47,13 +48,15 @@ my %callbacks = (
 
 my $params = {};
 
-my $USAGE = "PROGRAM_NAME: Usage: $PROGRAM_NAME [--help] [--ps-no-redundant] [--fan-no-redundant] [--fan-high]\n";
+my $USAGE = "PROGRAM_NAME: Usage: $PROGRAM_NAME [--help] [--ps-no-redundant] [--fan-no-redundant] [--fan-high] [--dimm-na] [--fan-ignore-not-present]\n";
 Getopt::Long::config('bundling');
 if (!GetOptions (
-        '--help'                => \$params->{'help'},
-        '--ps-no-redundant'     => \$params->{'ps-no-redundant'},
-        '--fan-no-redundant'    => \$params->{'fan-no-redundant'},
-        '--fan-high'            => \$params->{'fan-high'},
+        '--help'                        => \$params->{'help'},
+        '--ps-no-redundant'             => \$params->{'ps-no-redundant'},
+        '--fan-no-redundant'            => \$params->{'fan-no-redundant'},
+        '--fan-high'                    => \$params->{'fan-high'},
+        '--dimm-na'                     => \$params->{'dimm-na'},
+        '--fan-ignore-not-present'      => \$params->{'fan-ignore-not-present'},
         )) {
         die ("$USAGE");
 };
@@ -83,7 +86,8 @@ sub do_dimm {
 
     if ($line =~ /(^\s*$|-----)/) {
       if ($in_block) {
-        if ($status ne 'Ok') {
+        unless (($status eq 'Ok') ||
+                ($params->{'dimm-na'} && $status eq 'N/A')) {
           $message = sprintf("DIMM%d: %s ", $dimm_num, $status);
           $exit_status |= 2;
         }
@@ -141,7 +145,7 @@ sub do_fans {
 
       if ($line[2] ne 'Yes') {
         $message = sprintf("FAN%d: status=%s ", $fan_num, $line[2]);
-        $exit_status |= 2;
+        $exit_status |= 2 unless ($params->{'fan-ignore-not-present'});
       } elsif ($line[3] ne 'NORMAL') {
         $message = sprintf("FAN%d: speed=%s ", $fan_num, $line[3]);
         $exit_status |= 1 unless ($line[3] eq 'HIGH' && $params->{'fan-high'});
@@ -282,7 +286,7 @@ for my $line (@output) {
 }
 
 if ($exit_status & 2) {
-  print "CRTICAL: $ret\n";
+  print "CRITICAL: $ret\n";
   exit 2;
 } elsif ($exit_status & 1) {
   print "WARNING: $ret\n";