From 4ef5691bb548196c746fbdc8e88f0edca486e91b Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 19 Mar 2019 13:05:47 +0000 Subject: [PATCH] allow pseudo devices to arpnip --- lib/App/Netdisco/DB.pm | 2 +- lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm | 1 + lib/App/Netdisco/Worker/Plugin/Arpnip.pm | 3 --- lib/App/Netdisco/Worker/Plugin/Arpwalk.pm | 5 ++--- share/schema_versions/App-Netdisco-DB-55-56-PostgreSQL.sql | 5 +++++ 5 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 share/schema_versions/App-Netdisco-DB-55-56-PostgreSQL.sql diff --git a/lib/App/Netdisco/DB.pm b/lib/App/Netdisco/DB.pm index e5dad2c9..74074f95 100644 --- a/lib/App/Netdisco/DB.pm +++ b/lib/App/Netdisco/DB.pm @@ -11,7 +11,7 @@ __PACKAGE__->load_namespaces( ); our # try to hide from kwalitee - $VERSION = 55; # schema version used for upgrades, keep as integer + $VERSION = 56; # schema version used for upgrades, keep as integer use Path::Class; use File::ShareDir 'dist_dir'; diff --git a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm index fc60c47e..bf4b9d38 100644 --- a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm +++ b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm @@ -36,6 +36,7 @@ ajax '/ajax/control/admin/pseudodevice/add' => require_role admin => sub { ip => param('ip'), dns => param('dns'), vendor => 'netdisco', + layers => '00000100', last_discover => \'now()', }); return unless $device; diff --git a/lib/App/Netdisco/Worker/Plugin/Arpnip.pm b/lib/App/Netdisco/Worker/Plugin/Arpnip.pm index 1d79f128..7ac1676e 100644 --- a/lib/App/Netdisco/Worker/Plugin/Arpnip.pm +++ b/lib/App/Netdisco/Worker/Plugin/Arpnip.pm @@ -16,9 +16,6 @@ register_worker({ phase => 'check' }, sub { return Status->error("arpnip skipped: $device not yet discovered") unless $device->in_storage; - return Status->defer("arpnip skipped: $device is pseudo-device") - if $device->is_pseudo; - return Status->defer("arpnip skipped: $device has no layer 3 capability") unless $device->has_layer(3); diff --git a/lib/App/Netdisco/Worker/Plugin/Arpwalk.pm b/lib/App/Netdisco/Worker/Plugin/Arpwalk.pm index 599aba4c..a7a21837 100644 --- a/lib/App/Netdisco/Worker/Plugin/Arpwalk.pm +++ b/lib/App/Netdisco/Worker/Plugin/Arpwalk.pm @@ -11,9 +11,8 @@ register_worker({ phase => 'main' }, sub { my ($job, $workerconf) = @_; my %queued = map {$_ => 1} jq_queued('arpnip'); - my @devices = schema('netdisco')->resultset('Device')->search({ - -or => [ 'vendor' => undef, 'vendor' => { '!=' => 'netdisco' }], - })->has_layer('3')->get_column('ip')->all; + my @devices = schema('netdisco')->resultset('Device') + ->has_layer('3')->get_column('ip')->all; my @filtered_devices = grep {!exists $queued{$_}} @devices; jq_insert([ diff --git a/share/schema_versions/App-Netdisco-DB-55-56-PostgreSQL.sql b/share/schema_versions/App-Netdisco-DB-55-56-PostgreSQL.sql new file mode 100644 index 00000000..d7ca523f --- /dev/null +++ b/share/schema_versions/App-Netdisco-DB-55-56-PostgreSQL.sql @@ -0,0 +1,5 @@ +BEGIN; + +UPDATE device SET layers = '00000100' WHERE vendor = 'netdisco'; + +COMMIT;