* make log_message optional in delete_device * add hooks support to delete job * make delete job high prio * web delete now queues job instead of inline delete * move web logging into web package and remove userlog from device delete helper * submit delete job for expire device instead of inline delete * fixes to get web submit form for delete device to work * enable delete hook functionality
32 lines
868 B
Perl
32 lines
868 B
Perl
package App::Netdisco::Worker::Plugin::Delete::Hooks;
|
|
|
|
use Dancer ':syntax';
|
|
use App::Netdisco::Worker::Plugin;
|
|
use aliased 'App::Netdisco::Worker::Status';
|
|
|
|
use App::Netdisco::Util::Worker;
|
|
use App::Netdisco::Util::Permission qw/check_acl_no check_acl_only/;
|
|
|
|
register_worker({ phase => 'late' }, sub {
|
|
my ($job, $workerconf) = @_;
|
|
my $count = 0;
|
|
|
|
foreach my $conf (@{ setting('hooks') }) {
|
|
my $no = ($conf->{'filter'}->{'no'} || []);
|
|
my $only = ($conf->{'filter'}->{'only'} || []);
|
|
|
|
next if check_acl_no( $job->device, $no );
|
|
next unless check_acl_only( $job->device, $only);
|
|
|
|
if ($conf->{'event'} eq 'delete') {
|
|
$count += queue_hook('delete', $conf);
|
|
debug sprintf ' [%s] hooks - %s queued', 'delete', $job->device;
|
|
}
|
|
}
|
|
|
|
return Status
|
|
->info(sprintf ' [%s] hooks - %d queued', $job->device, $count);
|
|
});
|
|
|
|
true;
|