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