[Nagiosplug-checkins] SF.net SVN: nagiosplug:[2082] Nagios-Plugin/trunk

dermoth at users.sourceforge.net dermoth at users.sourceforge.net
Wed Nov 19 04:58:09 CET 2008


Revision: 2082
          http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2082&view=rev
Author:   dermoth
Date:     2008-11-19 03:58:09 +0000 (Wed, 19 Nov 2008)

Log Message:
-----------
Add max_state_* interface warper to Nagios::Plugin object

Modified Paths:
--------------
    Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
    Nagios-Plugin/trunk/lib/Nagios/Plugin.pm

Added Paths:
-----------
    Nagios-Plugin/trunk/t/Nagios-Plugin-Functions-04.t

Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm	2008-11-14 20:38:26 UTC (rev 2081)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm	2008-11-19 03:58:09 UTC (rev 2082)
@@ -19,11 +19,11 @@
 require Exporter;
 our @ISA = qw(Exporter);
 our @EXPORT = (@STATUS_CODES, qw(nagios_exit nagios_die check_messages));
-our @EXPORT_OK = qw(%ERRORS %STATUS_TEXT @STATUS_CODES get_shortname max_state convert $value_re);
+our @EXPORT_OK = qw(%ERRORS %STATUS_TEXT @STATUS_CODES get_shortname max_state max_state_alt convert $value_re);
 our %EXPORT_TAGS = (
     all => [ @EXPORT, @EXPORT_OK ],
     codes => [ @STATUS_CODES ],
-    functions => [ qw(nagios_exit nagios_die check_messages max_state convert) ],
+    functions => [ qw(nagios_exit nagios_die check_messages max_state max_state_alt convert) ],
 );
 
 use constant OK         => 0;
@@ -73,6 +73,15 @@
 	return UNKNOWN;
 }
 
+sub max_state_alt {
+        return CRITICAL if grep { $_ == CRITICAL } @_;
+        return WARNING if grep { $_ == WARNING } @_;
+        return UNKNOWN if grep { $_ == UNKNOWN } @_;
+        return DEPENDENT if grep { $_ == DEPENDENT } @_;
+        return OK if grep { $_ == OK } @_;
+        return UNKNOWN;
+}
+
 # nagios_exit( $code, $message )
 sub nagios_exit {
     my ($code, $message, $arg) = @_;
@@ -303,6 +312,7 @@
     %STATUS_TEXT
     get_shortname
     max_state
+    max_state_alt
 
 
 =head2 FUNCTIONS
@@ -395,6 +405,18 @@
 Returns the worst state in the array. Order is: CRITICAL, WARNING, OK, UNKNOWN,
 DEPENDENT
 
+The typical usage of max_state is to initialise the state as UNKNOWN and use
+it on the result of various test. If no test were performed successfully the
+state will still be UNKNOWN.
+
+=item max_state_alt(@a)
+
+Returns the worst state in the array. Order is: CRITICAL, WARNING, UNKNOWN,
+DEPENDENT, OK
+
+This is a true definition of a max state (OK last) and should be used if the
+internal tests performed can return UNKNOWN.
+
 =back
 
 =head1 SEE ALSO

Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin.pm	2008-11-14 20:38:26 UTC (rev 2081)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin.pm	2008-11-19 03:58:09 UTC (rev 2082)
@@ -99,6 +99,12 @@
     my $self = shift;
     Nagios::Plugin::Functions::nagios_die(@_, { plugin => $self });
 }
+sub max_state {
+    Nagios::Plugin::Functions::max_state(@_);
+}
+sub max_state_alt {
+    Nagios::Plugin::Functions::max_state_alt(@_);
+}
 
 # Override default shortname accessor to add default
 sub shortname {
@@ -483,6 +489,11 @@
 
 Alias for nagios_die(). Deprecated.
 
+=item max_state, max_state_alt
+
+These are wrapper function for Nagios::Plugin::Functions::max_state and
+Nagios::Plugin::Functions::max_state_alt.
+
 =back
 
 =head2 THRESHOLD METHODS

Added: Nagios-Plugin/trunk/t/Nagios-Plugin-Functions-04.t
===================================================================
--- Nagios-Plugin/trunk/t/Nagios-Plugin-Functions-04.t	                        (rev 0)
+++ Nagios-Plugin/trunk/t/Nagios-Plugin-Functions-04.t	2008-11-19 03:58:09 UTC (rev 2082)
@@ -0,0 +1,21 @@
+# max_state_alt tests
+
+use strict;
+use Test::More tests => 8;
+
+BEGIN { use_ok("Nagios::Plugin::Functions", ":all") }
+
+my $new_state = max_state_alt( OK, WARNING );
+
+is( $new_state, WARNING, "Moved up to WARNING" );
+is( max_state_alt( $new_state, UNKNOWN ), WARNING, "Still at WARNING" );
+
+$new_state = max_state_alt( $new_state, CRITICAL );
+is( $new_state, CRITICAL, "Now at CRITICAL" );
+is( max_state_alt( OK, OK ), OK, "This is OK" );
+
+is( max_state_alt( OK, UNKNOWN ), UNKNOWN, "This is UNKNOWN" );
+
+is( max_state_alt( OK, OK, OK, OK, OK, WARNING ), WARNING, "Use WARNING in this list" );
+
+is( max_state_alt(), UNKNOWN, "Return UNKNOWN if no parameters" );


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