Title: [opsview] [11898] Updated library to return undef on error
Revision
11898
Author
hstevenson
Date
2013-03-21 12:43:53 +0000 (Thu, 21 Mar 2013)

Log Message

Updated library to return undef on error

Modified Paths


Modified: trunk/opsview-core/lib/Opsview/NagiosPlugin/SNMP.pm
===================================================================
--- trunk/opsview-core/lib/Opsview/NagiosPlugin/SNMP.pm	2013-03-21 12:39:46 UTC (rev 11897)
+++ trunk/opsview-core/lib/Opsview/NagiosPlugin/SNMP.pm	2013-03-21 12:43:53 UTC (rev 11898)
@@ -176,15 +176,19 @@
 
 }
 
-# Makes connection and returns the Net::SNMP object
+#Makes connection and returns the Net::SNMP object
+# Can take overrides, eg:
+# $snmp = $np->snmp( { rocommunity => "public@192.168.1.1" } );
 sub snmp {
     my ( $self, $overrides ) = @_;
 
+    my $undef_on_failure = $overrides->{undef_on_failure} || 0;
+
     my $opts = $self->opts;
 
     my $version = $opts->get( 'snmp-version' );
 
-    my $hostname = $opts->get( 'hostname' );
+    my $hostname = $overrides->{hostname} || $opts->get( 'hostname' );
 
     my @args = (
         '-hostname' => $hostname,
@@ -210,6 +214,9 @@
     my ( $session, $error ) = Net::SNMP->session( "-version", $version, @args );
 
     if ( $error ne '' ) {
+        if ($undef_on_failure) {
+            return undef;
+        }
         $self->die( "Net-SNMP session creation failed: $error" );
     }
 
@@ -221,6 +228,9 @@
 
             ( $session, $error ) = Net::SNMP->session( "-version", "1", @args );
             if ( $error ne '' ) {
+                if ($undef_on_failure) {
+                    return undef;
+                }
                 $self->die( "Net-SNMP session creation failed: $error" );
             }
 

_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins

Reply via email to