31 lines
773 B
Perl
31 lines
773 B
Perl
package App::Netdisco::Worker::Plugin::Nbtwalk;
|
|
|
|
use Dancer ':syntax';
|
|
use App::Netdisco::Worker::Plugin;
|
|
use aliased 'App::Netdisco::Worker::Status';
|
|
|
|
use App::Netdisco::JobQueue qw/jq_queued jq_insert/;
|
|
use Dancer::Plugin::DBIC 'schema';
|
|
|
|
register_worker({ phase => 'main' }, sub {
|
|
my ($job, $workerconf) = @_;
|
|
|
|
my %queued = map {$_ => 1} jq_queued('nbtstat');
|
|
my @devices = schema('netdisco')->resultset('Device')
|
|
->has_layer('2')->get_column('ip')->all;
|
|
my @filtered_devices = grep {!exists $queued{$_}} @devices;
|
|
|
|
jq_insert([
|
|
map {{
|
|
device => $_,
|
|
action => 'nbtstat',
|
|
username => $job->username,
|
|
userip => $job->userip,
|
|
}} (@filtered_devices)
|
|
]);
|
|
|
|
return Status->done('Queued nbtstat job for all devices');
|
|
});
|
|
|
|
true;
|