From b7c1146e5f2ab1215aa3413b42725dd97f193d4a Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sun, 9 Dec 2012 17:19:21 +0000 Subject: [PATCH] change community_rw to be array ref --- Netdisco/bin/netdisco-daemon | 17 +++++++---------- Netdisco/lib/Netdisco/Daemon/Actions/Device.pm | 5 +---- Netdisco/lib/Netdisco/Daemon/Actions/Port.pm | 6 +----- Netdisco/lib/Netdisco/Util/Connect.pm | 5 +---- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/Netdisco/bin/netdisco-daemon b/Netdisco/bin/netdisco-daemon index c5ab4eb5..dc3e4676 100755 --- a/Netdisco/bin/netdisco-daemon +++ b/Netdisco/bin/netdisco-daemon @@ -18,15 +18,8 @@ newdaemon( logpriority => 'daemon.info', ); -sub gd_preconfig { - my $self = shift; - - # FIXME: only for Actions should this be checked - $self->gd_error("No read-write community string has been set.") - unless length setting('community_rw'); - - return (); # important -} +# do not remove - must be redefined +sub gd_preconfig { return () } sub gd_run_body { my $self = shift; @@ -48,7 +41,11 @@ sub gd_run_body { next unless $self->lock_job($job); # do job - my ($status, $log) = $self->$target($job); + my ($status, $log); + try { + ($status, $log) = $self->$target($job); + } + catch { warn "error running job: $_\n" }; # revert to queued status if we failed to action the job if (not $status) { diff --git a/Netdisco/lib/Netdisco/Daemon/Actions/Device.pm b/Netdisco/lib/Netdisco/Daemon/Actions/Device.pm index 8e08ae77..f279c3d8 100644 --- a/Netdisco/lib/Netdisco/Daemon/Actions/Device.pm +++ b/Netdisco/lib/Netdisco/Daemon/Actions/Device.pm @@ -39,11 +39,8 @@ sub _set_device_generic { return error("Verify of $slot update failed on [$ip]: $new_data"); } - # get device details from db - my $device = get_device($ip) - or return error("Updated $slot on [$ip] to [$data] but failed to update DB"); - # update netdisco DB + my $device = get_device($ip); $device->update({$slot => $data}); return done("Updated $slot on [$ip] to [$data]"); diff --git a/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm b/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm index 3e746204..8985642b 100644 --- a/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm +++ b/Netdisco/lib/Netdisco/Daemon/Actions/Port.pm @@ -40,12 +40,8 @@ sub portcontrol { return error("Verify of [$pn] port status failed on [$ip]: $state"); } - # get device details from db - my $device = $port->device - or return error("Updated [$pn] port status on [$ip] but failed to update DB"); - # update netdisco DB - $device->update({up_admin => $state}); + $port->device->update({up_admin => $state}); return done("Updated [$pn] port status on [$ip] to [$state]"); } diff --git a/Netdisco/lib/Netdisco/Util/Connect.pm b/Netdisco/lib/Netdisco/Util/Connect.pm index bd76ed14..9afcbd08 100644 --- a/Netdisco/lib/Netdisco/Util/Connect.pm +++ b/Netdisco/lib/Netdisco/Util/Connect.pm @@ -107,11 +107,8 @@ sub snmp_connect { Debug => ($ENV{INFO_TRACE} || 0), ); - (my $comm = setting('community_rw')) =~ s/\s+//g; - my @communities = split /,/, $comm; - my $info = undef; - COMMUNITY: foreach my $c (@communities) { + COMMUNITY: foreach my $c (@{ setting('community_rw') || []}) { try { $info = SNMP::Info->new(%snmp_args, Community => $c); last COMMUNITY if (