32 lines
		
	
	
		
			872 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			872 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
| package App::Netdisco::Worker::Plugin::Macsuck::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 'macsuck') {
 | |
|       $count += queue_hook('macsuck', $conf);
 | |
|       debug sprintf ' [%s] hooks - %s queued', 'macsuck', $job->device;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return Status
 | |
|     ->info(sprintf ' [%s] hooks - %d queued', $job->device, $count);
 | |
| });
 | |
| 
 | |
| true;
 |