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