# 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
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");
};
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;
}
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'});
}
if ($exit_status & 2) {
- print "CRTICAL: $ret\n";
+ print "CRITICAL: $ret\n";
exit 2;
} elsif ($exit_status & 1) {
print "WARNING: $ret\n";