only load worker plugins for the action
This commit is contained in:
		| @@ -7,10 +7,9 @@ use Module::Load (); | ||||
| use Dancer ':syntax'; | ||||
|  | ||||
| # load worker plugins for our workers | ||||
| # NOTE: this package is loaded for all actions whether backend or netdisco-do | ||||
|  | ||||
| sub load_worker_plugins { | ||||
|   my $plugin_list = shift; | ||||
|   my ($action, $plugin_list) = @_; | ||||
|  | ||||
|   foreach my $plugin (@$plugin_list) { | ||||
|     $plugin =~ s/^X::/+App::NetdiscoX::Worker::Plugin::/; | ||||
| @@ -18,12 +17,17 @@ sub load_worker_plugins { | ||||
|       if $plugin !~ m/^\+/; | ||||
|     $plugin =~ s/^\+//; | ||||
|  | ||||
|     $ENV{PLUGIN_LOAD_DEBUG} && debug "loading Netdisco plugin $plugin"; | ||||
|     eval { Module::Load::load $plugin }; | ||||
|     next unless $plugin =~ m/::Plugin::${action}(?:::|$)/i; | ||||
|  | ||||
|     debug "loading worker plugin $plugin"; | ||||
|     Module::Load::load $plugin; | ||||
|   } | ||||
| } | ||||
|  | ||||
| load_worker_plugins( setting('extra_worker_plugins') || [] ); | ||||
| load_worker_plugins( setting('worker_plugins') || [] ); | ||||
| sub import { | ||||
|   my ($class, $action) = @_; | ||||
|   load_worker_plugins( $action, setting('extra_worker_plugins') || [] ); | ||||
|   load_worker_plugins( $action, setting('worker_plugins') || [] ); | ||||
| } | ||||
|  | ||||
| true; | ||||
|   | ||||
| @@ -2,12 +2,11 @@ package App::Netdisco::Worker::Runner; | ||||
|  | ||||
| use Dancer qw/:moose :syntax/; | ||||
| use Dancer::Factory::Hook; | ||||
|  | ||||
| use App::Netdisco::Worker; | ||||
| use aliased 'App::Netdisco::Worker::Status'; | ||||
|  | ||||
| use Try::Tiny; | ||||
| use Moo::Role; | ||||
| use Module::Load (); | ||||
| use Scope::Guard 'guard'; | ||||
| use namespace::clean; | ||||
|  | ||||
| @@ -33,6 +32,9 @@ sub run { | ||||
|     unless ref $job eq 'App::Netdisco::Backend::Job'; | ||||
|   $self->job($job); | ||||
|  | ||||
|   my $action = $job->action; | ||||
|   Module::Load::load 'App::Netdisco::Worker', $action; | ||||
|  | ||||
|   my @newuserconf = (); | ||||
|   my @userconf = @{ setting('device_auth') || [] }; | ||||
|  | ||||
| @@ -57,7 +59,6 @@ sub run { | ||||
|   my $guard = guard { set(device_auth => \@userconf) }; | ||||
|   set(device_auth => \@newuserconf); | ||||
|  | ||||
|   my $action = $job->action; | ||||
|   my @phase_hooks = grep { m/^nd2_${action}_/ } | ||||
|                          @{ (setting('_nd2worker_hooks') || []) }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user