new Backend package to load core plugins

This commit is contained in:
Oliver Gorwits
2017-09-03 16:51:55 +01:00
parent 3baa7a818a
commit 5f50dfadf1
4 changed files with 31 additions and 24 deletions

View File

@@ -29,6 +29,7 @@ BEGIN {
setting('workers')->{'BACKEND'} ||= (hostfqdn || 'fqdn-undefined');
}
use App::Netdisco::Backend;
use App::Netdisco::Util::MCE; # set $0 and parse maxworkers
use NetAddr::IP::Lite ':lower'; # to quench AF_INET6 symbol errors
use Role::Tiny::With;

View File

@@ -35,6 +35,7 @@ BEGIN {
# for netdisco app config
use App::Netdisco;
use App::Netdisco::Backend;
use App::Netdisco::Backend::Job;
use Dancer qw/:moose :script/;

View File

@@ -0,0 +1,29 @@
package App::Netdisco::Backend;
use strict;
use warnings;
use Module::Load ();
use Dancer ':syntax';
# load core worker plugins for our workers
# NOTE: this package is loaded for all actions whether backend or netdisco-do
sub load_core_plugins {
my $plugin_list = shift;
foreach my $plugin (@$plugin_list) {
$plugin =~ s/^X::/+App::NetdiscoX::Core::Plugin::/;
$plugin = 'App::Netdisco::Core::Plugin::'. $plugin
if $plugin !~ m/^\+/;
$plugin =~ s/^\+//;
debug "loading Netdisco plugin $plugin";
eval { Module::Load::load $plugin };
}
}
load_core_plugins( setting('extra_core_plugins') || [] );
load_core_plugins( setting('core_plugins') || [] );
true;

View File

@@ -3,30 +3,6 @@ package App::Netdisco::Backend::Util;
use strict;
use warnings;
use Dancer ':syntax';
# load core worker plugins for our workers
# NOTE: this package is loaded for all actions whether backend or netdisco-do
use Module::Load ();
sub load_core_plugins {
my $plugin_list = shift;
foreach my $plugin (@$plugin_list) {
$plugin =~ s/^X::/+App::NetdiscoX::Core::Plugin::/;
$plugin = 'App::Netdisco::Core::Plugin::'. $plugin
if $plugin !~ m/^\+/;
$plugin =~ s/^\+//;
debug "loading Netdisco plugin $plugin";
eval { Module::Load::load $plugin };
}
}
load_core_plugins( setting('extra_core_plugins') || [] );
load_core_plugins( setting('core_plugins') || [] );
# support utilities for Backend Actions
use base 'Exporter';