move expire and expirenodes to worker plugins
This commit is contained in:
27
lib/App/Netdisco/Worker/Plugin/ExpireNodes.pm
Normal file
27
lib/App/Netdisco/Worker/Plugin/ExpireNodes.pm
Normal file
@@ -0,0 +1,27 @@
|
||||
package App::Netdisco::Worker::Plugin::ExpireNodes;
|
||||
|
||||
use Dancer ':syntax';
|
||||
use App::Netdisco::Worker::Plugin;
|
||||
use aliased 'App::Netdisco::Worker::Status';
|
||||
|
||||
use Dancer::Plugin::DBIC 'schema';
|
||||
|
||||
register_worker({ primary => true }, sub {
|
||||
my ($job, $workerconf) = @_;
|
||||
|
||||
return Status->error('nbtstat failed: unable to interpret device param')
|
||||
if !defined $job->device;
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
schema('netdisco')->resultset('Node')->search({
|
||||
switch => $job->device->ip,
|
||||
($job->port ? (port => $job->port) : ()),
|
||||
})->delete(
|
||||
($job->extra ? () : ({ archive_nodes => 1 }))
|
||||
);
|
||||
});
|
||||
|
||||
return Status->done('Expired nodes for '. $job->device->ip);
|
||||
});
|
||||
|
||||
true;
|
||||
Reference in New Issue
Block a user