summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTon Voon <tonvoon@gmail.com>2011-12-22 11:56:08 -0500
committerTon Voon <tonvoon@gmail.com>2011-12-22 11:56:08 -0500
commitcce4fccf608b3e4accf7cbf2f11da23b3d627f15 (patch)
tree95eab212877fef34e132c1ee4d33055611e3bb4d
parent95426817f66bbc7a1e4ad998fe10f327f0096257 (diff)
downloadmonitoring-plugin-perl-cce4fccf608b3e4accf7cbf2f11da23b3d627f15.tar.gz
check_threshold to check multiple values at once
-rw-r--r--Changes3
-rw-r--r--lib/Nagios/Plugin.pm5
-rw-r--r--lib/Nagios/Plugin/Threshold.pm13
-rw-r--r--t/Nagios-Plugin-04.t8
4 files changed, 23 insertions, 6 deletions
diff --git a/Changes b/Changes
index 29b8fc3..2034b6c 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
1Revision history for Perl module Nagios::Plugin. 1Revision history for Perl module Nagios::Plugin.
2 2
30.36 22nd December 2011
4 - Updated check_threshold to allow multiple check values to be checked at once
5
30.35 3rd December 2010 60.35 3rd December 2010
4 - Fixed test failures with Test::More 0.96 (Slaven Rezic and Peter John Edwards - RT57709) 7 - Fixed test failures with Test::More 0.96 (Slaven Rezic and Peter John Edwards - RT57709)
5 8
diff --git a/lib/Nagios/Plugin.pm b/lib/Nagios/Plugin.pm
index d2a5145..8950477 100644
--- a/lib/Nagios/Plugin.pm
+++ b/lib/Nagios/Plugin.pm
@@ -110,7 +110,7 @@ sub check_threshold {
110 110
111 my %args; 111 my %args;
112 112
113 if ( $#_ == 0 && ! ref $_[0]) { # one positional param 113 if ( $#_ == 0 && (! ref $_[0] || ref $_[0] eq "ARRAY" )) { # one positional param
114 %args = (check => shift); 114 %args = (check => shift);
115 } 115 }
116 else { 116 else {
@@ -509,6 +509,9 @@ WARNING constant. The thresholds may be:
5093. implicitly set by command-line parameters -w, -c, --critical or 5093. implicitly set by command-line parameters -w, -c, --critical or
510 --warning, if you have run C<< $plugin->getopts() >>. 510 --warning, if you have run C<< $plugin->getopts() >>.
511 511
512You can specify $value as an array of values and each will be checked against
513the thresholds.
514
512The return value is ready to pass to C <nagios_exit>, e . g ., 515The return value is ready to pass to C <nagios_exit>, e . g .,
513 516
514 $p->nagios_exit( 517 $p->nagios_exit(
diff --git a/lib/Nagios/Plugin/Threshold.pm b/lib/Nagios/Plugin/Threshold.pm
index 73fce53..95a089b 100644
--- a/lib/Nagios/Plugin/Threshold.pm
+++ b/lib/Nagios/Plugin/Threshold.pm
@@ -16,11 +16,16 @@ sub get_status
16{ 16{
17 my ($self, $value) = @_; 17 my ($self, $value) = @_;
18 18
19 if ($self->critical->is_set) { 19 $value = [ $value ] if (ref $value eq "");
20 return CRITICAL if $self->critical->check_range($value); 20 foreach my $v (@$value) {
21 if ($self->critical->is_set) {
22 return CRITICAL if $self->critical->check_range($v);
23 }
21 } 24 }
22 if ($self->warning->is_set) { 25 foreach my $v (@$value) {
23 return WARNING if $self->warning->check_range($value); 26 if ($self->warning->is_set) {
27 return WARNING if $self->warning->check_range($v);
28 }
24 } 29 }
25 return OK; 30 return OK;
26} 31}
diff --git a/t/Nagios-Plugin-04.t b/t/Nagios-Plugin-04.t
index d88ad73..e5eb3ab 100644
--- a/t/Nagios-Plugin-04.t
+++ b/t/Nagios-Plugin-04.t
@@ -3,7 +3,7 @@
3 3
4use strict; 4use strict;
5#use Test::More 'no_plan'; 5#use Test::More 'no_plan';
6use Test::More tests=>26; 6use Test::More tests=>30;
7 7
8BEGIN { use_ok('Nagios::Plugin') }; 8BEGIN { use_ok('Nagios::Plugin') };
9use Nagios::Plugin::Functions; 9use Nagios::Plugin::Functions;
@@ -52,6 +52,12 @@ is $p->check_threshold(6), WARNING, "check_threshold WARNING";
52is $p->check_threshold(11), CRITICAL, "check_threshold CRITICAL"; 52is $p->check_threshold(11), CRITICAL, "check_threshold CRITICAL";
53is $p->check_threshold(check=>11), CRITICAL, "check_threshold CRITICAL with hash param"; 53is $p->check_threshold(check=>11), CRITICAL, "check_threshold CRITICAL with hash param";
54 54
55# Check that arrays allowed
56is $p->check_threshold([2,1]), OK, "check_threshold OK when called implicitly";
57is $p->check_threshold([6,2]), WARNING, "check_threshold WARNING";
58is $p->check_threshold([1,2,6,11]), CRITICAL, "check_threshold CRITICAL";
59is $p->check_threshold(check=>[1,2,6,11]), CRITICAL, "check_threshold CRITICAL with hash param";
60
55# thresholds set explicitly 61# thresholds set explicitly
56is $p->check_threshold( 62is $p->check_threshold(
57 check => 2, 63 check => 2,