summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTon Voon <tonvoon@macbook.local>2009-01-05 22:24:44 (GMT)
committerTon Voon <tonvoon@macbook.local>2009-01-05 22:24:44 (GMT)
commit67a45638154221708da7f92451143475bdc229ac (patch)
tree65917e7a12893ca1df3ea446864169d6c6076747 /lib
parent91047f17af0454e94fbd30615f4a6959a593f48e (diff)
downloadmonitoring-plugin-perl-67a45638154221708da7f92451143475bdc229ac.tar.gz
Check for valid numerical value before returning perfdata object
Diffstat (limited to 'lib')
-rw-r--r--lib/Nagios/Plugin.pm2
-rw-r--r--lib/Nagios/Plugin/Functions.pm2
-rw-r--r--lib/Nagios/Plugin/Performance.pm12
3 files changed, 13 insertions, 3 deletions
diff --git a/lib/Nagios/Plugin.pm b/lib/Nagios/Plugin.pm
index 2c9099f..b0b053d 100644
--- a/lib/Nagios/Plugin.pm
+++ b/lib/Nagios/Plugin.pm
@@ -25,7 +25,7 @@ our @EXPORT_OK = qw(%ERRORS);
25# CPAN stupidly won't index this module without a literal $VERSION here, 25# CPAN stupidly won't index this module without a literal $VERSION here,
26# so we're forced to duplicate it explicitly 26# so we're forced to duplicate it explicitly
27# Make sure you update $Nagios::Plugin::Functions::VERSION too 27# Make sure you update $Nagios::Plugin::Functions::VERSION too
28our $VERSION = "0.30"; 28our $VERSION = "0.31";
29 29
30sub new { 30sub new {
31 my $class = shift; 31 my $class = shift;
diff --git a/lib/Nagios/Plugin/Functions.pm b/lib/Nagios/Plugin/Functions.pm
index b7348f3..c7e899c 100644
--- a/lib/Nagios/Plugin/Functions.pm
+++ b/lib/Nagios/Plugin/Functions.pm
@@ -12,7 +12,7 @@ use Params::Validate qw(:types validate);
12use Math::Calc::Units; 12use Math::Calc::Units;
13 13
14# Remember to update Nagios::Plugins as well 14# Remember to update Nagios::Plugins as well
15our $VERSION = "0.30"; 15our $VERSION = "0.31";
16 16
17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT); 17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT);
18 18
diff --git a/lib/Nagios/Plugin/Performance.pm b/lib/Nagios/Plugin/Performance.pm
index df591fb..c35653e 100644
--- a/lib/Nagios/Plugin/Performance.pm
+++ b/lib/Nagios/Plugin/Performance.pm
@@ -35,8 +35,18 @@ sub _parse {
35 my @info = ($1, $2, $3, $4, $5, $6, $7); 35 my @info = ($1, $2, $3, $4, $5, $6, $7);
36 # We convert any commas to periods, in the value fields 36 # We convert any commas to periods, in the value fields
37 map { defined $info[$_] && $info[$_] =~ s/,/./go } (1, 3, 4, 5, 6); 37 map { defined $info[$_] && $info[$_] =~ s/,/./go } (1, 3, 4, 5, 6);
38
39 # Check that $info[1] is an actual value
40 # We do this by returning undef if a warning appears
41 my $performance_value;
42 {
43 my $not_value;
44 local $SIG{__WARN__} = sub { $not_value++ };
45 $performance_value = $info[1]+0;
46 return undef if $not_value;
47 }
38 my $p = $class->new( 48 my $p = $class->new(
39 label => $info[0], value => $info[1]+0, uom => $info[2], warning => $info[3], critical => $info[4], 49 label => $info[0], value => $performance_value, uom => $info[2], warning => $info[3], critical => $info[4],
40 min => $info[5], max => $info[6] 50 min => $info[5], max => $info[6]
41 ); 51 );
42 return $p; 52 return $p;