From 16a79463cb2a938e1054cbc83c897bdc70e47cee Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sat, 9 Sep 2017 16:27:58 +0100 Subject: [PATCH] set snmp driver on macsuck phase workers --- lib/App/Netdisco/Worker/Plugin/Macsuck.pm | 7 ------- lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm | 8 ++++++-- .../Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm | 11 ++++++----- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/App/Netdisco/Worker/Plugin/Macsuck.pm b/lib/App/Netdisco/Worker/Plugin/Macsuck.pm index 823f59ee..c698cc8d 100644 --- a/lib/App/Netdisco/Worker/Plugin/Macsuck.pm +++ b/lib/App/Netdisco/Worker/Plugin/Macsuck.pm @@ -25,13 +25,6 @@ register_worker({ primary => true }, sub { return Status->defer("macsuck deferred: $host is not macsuckable") unless is_macsuckable_now($device); - my $snmp = App::Netdisco::Transport::SNMP->reader_for($device); - return Status->defer("macsuck failed: could not SNMP connect to $host") - unless defined $snmp; - - return Status->done("Skipped macsuck for device $host without layer 2 capability") - unless $snmp->has_layer(2); - return Status->done('Macsuck is able to run.'); }); diff --git a/lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm b/lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm index 67ea594b..6f996abe 100644 --- a/lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm +++ b/lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm @@ -14,11 +14,15 @@ use Dancer::Plugin::DBIC 'schema'; use Time::HiRes 'gettimeofday'; use Scope::Guard 'guard'; -register_worker({ primary => true }, sub { +register_worker({ primary => true, driver => 'snmp' }, sub { my ($job, $workerconf) = @_; my $device = $job->device; - my $snmp = App::Netdisco::Transport::SNMP->reader_for($device); + my $snmp = App::Netdisco::Transport::SNMP->reader_for($device) + or return Status->defer("macsuck failed: could not SNMP connect to $host"); + + return Status->defer("Skipped macsuck for device $host without layer 2 capability") + unless $snmp->has_layer(2); # would be possible just to use now() on updated records, but by using this # same value for them all, we can if we want add a job at the end to diff --git a/lib/App/Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm b/lib/App/Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm index bfbcabe0..6b5d7b78 100644 --- a/lib/App/Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm +++ b/lib/App/Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm @@ -8,15 +8,16 @@ use App::Netdisco::Transport::SNMP (); use Dancer::Plugin::DBIC 'schema'; use Time::HiRes 'gettimeofday'; -register_worker({ primary => false }, sub { +register_worker({ primary => false, driver => 'snmp' }, sub { my ($job, $workerconf) = @_; my $device = $job->device; - my $snmp = App::Netdisco::Transport::SNMP->reader_for($device); + my $snmp = App::Netdisco::Transport::SNMP->reader_for($device) + or return Status->defer("macsuck failed: could not SNMP connect to $host"); + + return Status->defer("Skipped macsuck for device $host without layer 2 capability") + unless $snmp->has_layer(2); - # would be possible just to use now() on updated records, but by using this - # same value for them all, we can if we want add a job at the end to - # select and do something with the updated set (see set archive, below) my $now = 'to_timestamp('. (join '.', gettimeofday) .')'; my $cd11_txrate = $snmp->cd11_txrate;