[Nagiosplug-checkins] SF.net SVN: nagiosplug:[2114] Nagios-Plugin/trunk
dermoth at users.sourceforge.net
dermoth at users.sourceforge.net
Mon Jan 5 23:26:56 CET 2009
Revision: 2114
http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2114&view=rev
Author: dermoth
Date: 2009-01-05 22:26:56 +0000 (Mon, 05 Jan 2009)
Log Message:
-----------
Check for valid numerical value before returning perfdata object
Modified Paths:
--------------
Nagios-Plugin/trunk/Changes
Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm
Nagios-Plugin/trunk/lib/Nagios/Plugin.pm
Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t
Modified: Nagios-Plugin/trunk/Changes
===================================================================
--- Nagios-Plugin/trunk/Changes 2009-01-05 22:26:23 UTC (rev 2113)
+++ Nagios-Plugin/trunk/Changes 2009-01-05 22:26:56 UTC (rev 2114)
@@ -1,5 +1,8 @@
Revision history for Perl module Nagios::Plugin.
+0.31 5th January 2009
+ - Check for valid numerical value before returning perfdata object
+
0.30 13th December 2008
- Fixed performance parsing when numeric fields had commas instead of periods due to locale settings
- If a performance set is not parseable, instead of returning an empty array, will return all the successfully
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm 2009-01-05 22:26:23 UTC (rev 2113)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm 2009-01-05 22:26:56 UTC (rev 2114)
@@ -12,7 +12,7 @@
use Math::Calc::Units;
# Remember to update Nagios::Plugins as well
-our $VERSION = "0.30";
+our $VERSION = "0.31";
our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT);
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm 2009-01-05 22:26:23 UTC (rev 2113)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm 2009-01-05 22:26:56 UTC (rev 2114)
@@ -35,8 +35,18 @@
my @info = ($1, $2, $3, $4, $5, $6, $7);
# We convert any commas to periods, in the value fields
map { defined $info[$_] && $info[$_] =~ s/,/./go } (1, 3, 4, 5, 6);
+
+ # Check that $info[1] is an actual value
+ # We do this by returning undef if a warning appears
+ my $performance_value;
+ {
+ my $not_value;
+ local $SIG{__WARN__} = sub { $not_value++ };
+ $performance_value = $info[1]+0;
+ return undef if $not_value;
+ }
my $p = $class->new(
- label => $info[0], value => $info[1]+0, uom => $info[2], warning => $info[3], critical => $info[4],
+ label => $info[0], value => $performance_value, uom => $info[2], warning => $info[3], critical => $info[4],
min => $info[5], max => $info[6]
);
return $p;
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin.pm 2009-01-05 22:26:23 UTC (rev 2113)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin.pm 2009-01-05 22:26:56 UTC (rev 2114)
@@ -25,7 +25,7 @@
# CPAN stupidly won't index this module without a literal $VERSION here,
# so we're forced to duplicate it explicitly
# Make sure you update $Nagios::Plugin::Functions::VERSION too
-our $VERSION = "0.30";
+our $VERSION = "0.31";
sub new {
my $class = shift;
Modified: Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t
===================================================================
--- Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t 2009-01-05 22:26:23 UTC (rev 2113)
+++ Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t 2009-01-05 22:26:56 UTC (rev 2114)
@@ -16,7 +16,7 @@
},
);
-plan tests => (8 * scalar @test) + 132;
+plan tests => (8 * scalar @test) + 135;
use_ok('Nagios::Plugin::Performance');
diag "\nusing Nagios::Plugin::Performance revision ". $Nagios::Plugin::Performance::VERSION . "\n" if $ENV{TEST_VERBOSE};
@@ -250,4 +250,10 @@
is( $p[0]->threshold->critical->is_set, 1, "Critical range has been set");
is( $p[0]->threshold->critical, 120, "warn okay");
+# Some values with funny commas
+ at p = Nagios::Plugin::Performance->parse_perfstring("time=1800,600,300,0,3600 other=45.6");
+is( $p[0]->label, "other", "Ignored time=1800,600,300,0,3600, but allowed other=45.6");
+is( $p[0]->value, 45.6, "value okay");
+is( $p[0]->uom, "", "uom okay");
+
# add_perfdata tests in t/Nagios-Plugin-01.t
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list