From 2eb0b30812f4cbc2fda7d79662a5c151abeb2ee7 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 6 Jun 2017 08:08:52 +0100 Subject: [PATCH] do not select pseudo devices for poller jobs --- Changes | 1 + lib/App/Netdisco/Backend/Worker/Poller/Common.pm | 5 +++-- lib/App/Netdisco/Backend/Worker/Poller/Device.pm | 5 +++-- lib/App/Netdisco/Backend/Worker/Poller/Expiry.pm | 1 + 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Changes b/Changes index 2c7adef3..b5dc5268 100644 --- a/Changes +++ b/Changes @@ -20,6 +20,7 @@ * add SSL development library to Release Notes * #309 missing Device Port VLAN Mismatch CSV template * fail safe on an empty *_no ACL + * do not select pseudo devices for poller jobs 2.035006 - 2017-04-29 diff --git a/lib/App/Netdisco/Backend/Worker/Poller/Common.pm b/lib/App/Netdisco/Backend/Worker/Poller/Common.pm index 96e66f94..34533d64 100644 --- a/lib/App/Netdisco/Backend/Worker/Poller/Common.pm +++ b/lib/App/Netdisco/Backend/Worker/Poller/Common.pm @@ -21,8 +21,9 @@ sub _walk_body { my $job_layer = $self->$layer_method; my %queued = map {$_ => 1} jq_queued($job_type); - my @devices = schema('netdisco')->resultset('Device') - ->has_layer($job_layer)->get_column('ip')->all; + my @devices = schema('netdisco')->resultset('Device')->search({ + -or => [ 'vendor' => undef, 'vendor' => { '!=' => 'netdisco' }], + })->has_layer($job_layer)->get_column('ip')->all; my @filtered_devices = grep {!exists $queued{$_}} @devices; jq_insert([ diff --git a/lib/App/Netdisco/Backend/Worker/Poller/Device.pm b/lib/App/Netdisco/Backend/Worker/Poller/Device.pm index 097733d3..95c6c49a 100644 --- a/lib/App/Netdisco/Backend/Worker/Poller/Device.pm +++ b/lib/App/Netdisco/Backend/Worker/Poller/Device.pm @@ -19,8 +19,9 @@ sub discoverall { my ($self, $job) = @_; my %queued = map {$_ => 1} jq_queued('discover'); - my @devices = schema('netdisco')->resultset('Device') - ->get_column('ip')->all; + my @devices = schema('netdisco')->resultset('Device')->search({ + -or => [ 'vendor' => undef, 'vendor' => { '!=' => 'netdisco' }], + })->get_column('ip')->all; my @filtered_devices = grep {!exists $queued{$_}} @devices; jq_insert([ diff --git a/lib/App/Netdisco/Backend/Worker/Poller/Expiry.pm b/lib/App/Netdisco/Backend/Worker/Poller/Expiry.pm index 09818046..00d4e4b0 100644 --- a/lib/App/Netdisco/Backend/Worker/Poller/Expiry.pm +++ b/lib/App/Netdisco/Backend/Worker/Poller/Expiry.pm @@ -15,6 +15,7 @@ sub expire { if (setting('expire_devices') and setting('expire_devices') > 0) { schema('netdisco')->txn_do(sub { schema('netdisco')->resultset('Device')->search({ + -or => [ 'vendor' => undef, 'vendor' => { '!=' => 'netdisco' }], last_discover => \[q/< (now() - ?::interval)/, (setting('expire_devices') * 86400)], })->delete();