new DefaultSettings package, and mv queue to be key of workers
This commit is contained in:
@@ -7,58 +7,7 @@ use 5.010_000;
|
||||
our $VERSION = '2.027003';
|
||||
|
||||
use App::Netdisco::Environment;
|
||||
use Dancer ':script';
|
||||
|
||||
# set up database schema config from simple config vars
|
||||
if (ref {} eq ref setting('database')) {
|
||||
my $name = (setting('database')->{name} || 'netdisco');
|
||||
my $host = setting('database')->{host};
|
||||
my $user = setting('database')->{user};
|
||||
my $pass = setting('database')->{pass};
|
||||
|
||||
my $dsn = "dbi:Pg:dbname=${name}";
|
||||
$dsn .= ";host=${host}" if $host;
|
||||
|
||||
# set up the netdisco schema now we have access to the config
|
||||
# but only if it doesn't exist from an earlier config style
|
||||
setting('plugins')->{DBIC}->{netdisco} ||= {
|
||||
dsn => $dsn,
|
||||
user => $user,
|
||||
password => $pass,
|
||||
options => {
|
||||
AutoCommit => 1,
|
||||
RaiseError => 1,
|
||||
auto_savepoint => 1,
|
||||
},
|
||||
schema_class => 'App::Netdisco::DB',
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
# static configuration for the in-memory local job queue
|
||||
setting('plugins')->{DBIC}->{daemon} = {
|
||||
dsn => 'dbi:SQLite:dbname=:memory:',
|
||||
options => {
|
||||
AutoCommit => 1,
|
||||
RaiseError => 1,
|
||||
sqlite_use_immediate_transaction => 1,
|
||||
},
|
||||
schema_class => 'App::Netdisco::Daemon::DB',
|
||||
};
|
||||
|
||||
# force skipped DNS resolution, if unset
|
||||
setting('dns')->{no} ||= ['fe80::/64','169.254.0.0/16'];
|
||||
setting('dns')->{hosts_file} ||= '/etc/hosts';
|
||||
|
||||
# housekeeping expire used to be called expiry
|
||||
setting('housekeeping')->{expire} ||= setting('housekeeping')->{expiry}
|
||||
if setting('housekeeping') and exists setting('housekeeping')->{expiry};
|
||||
|
||||
# set max outstanding requests for AnyEvent::DNS
|
||||
$ENV{'PERL_ANYEVENT_MAX_OUTSTANDING_DNS'}
|
||||
= setting('dns')->{max_outstanding} || 10;
|
||||
$ENV{'PERL_ANYEVENT_HOSTS'}
|
||||
= setting('dns')->{hosts_file} || '/etc/hosts';
|
||||
use App::Netdisco::DefaultSettings;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
||||
59
Netdisco/lib/App/Netdisco/DefaultSettings.pm
Normal file
59
Netdisco/lib/App/Netdisco/DefaultSettings.pm
Normal file
@@ -0,0 +1,59 @@
|
||||
package App::Netdisco::DefaultSettings;
|
||||
|
||||
use Dancer qw/:moose :syntax :script/;
|
||||
|
||||
# set up database schema config from simple config vars
|
||||
if (ref {} eq ref setting('database')) {
|
||||
my $name = (setting('database')->{name} || 'netdisco');
|
||||
my $host = setting('database')->{host};
|
||||
my $user = setting('database')->{user};
|
||||
my $pass = setting('database')->{pass};
|
||||
|
||||
my $dsn = "dbi:Pg:dbname=${name}";
|
||||
$dsn .= ";host=${host}" if $host;
|
||||
|
||||
# set up the netdisco schema now we have access to the config
|
||||
# but only if it doesn't exist from an earlier config style
|
||||
setting('plugins')->{DBIC}->{netdisco} ||= {
|
||||
dsn => $dsn,
|
||||
user => $user,
|
||||
password => $pass,
|
||||
options => {
|
||||
AutoCommit => 1,
|
||||
RaiseError => 1,
|
||||
auto_savepoint => 1,
|
||||
},
|
||||
schema_class => 'App::Netdisco::DB',
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
# static configuration for the in-memory local job queue
|
||||
setting('plugins')->{DBIC}->{daemon} = {
|
||||
dsn => 'dbi:SQLite:dbname=:memory:',
|
||||
options => {
|
||||
AutoCommit => 1,
|
||||
RaiseError => 1,
|
||||
sqlite_use_immediate_transaction => 1,
|
||||
},
|
||||
schema_class => 'App::Netdisco::Daemon::DB',
|
||||
};
|
||||
|
||||
# default queue model is Pg
|
||||
setting('workers')->{queue} ||= 'PostgreSQL';
|
||||
|
||||
# force skipped DNS resolution, if unset
|
||||
setting('dns')->{hosts_file} ||= '/etc/hosts';
|
||||
setting('dns')->{no} ||= ['fe80::/64','169.254.0.0/16'];
|
||||
|
||||
# housekeeping expire used to be called expiry
|
||||
setting('housekeeping')->{expire} ||= setting('housekeeping')->{expiry}
|
||||
if setting('housekeeping') and exists setting('housekeeping')->{expiry};
|
||||
|
||||
# set max outstanding requests for AnyEvent::DNS
|
||||
$ENV{'PERL_ANYEVENT_MAX_OUTSTANDING_DNS'}
|
||||
= setting('dns')->{max_outstanding} || 50;
|
||||
$ENV{'PERL_ANYEVENT_HOSTS'}
|
||||
= setting('dns')->{hosts_file} || '/etc/hosts';
|
||||
|
||||
true;
|
||||
@@ -167,6 +167,7 @@ workers:
|
||||
interactives: 2
|
||||
pollers: 10
|
||||
sleep_time: 2
|
||||
queue: PostgreSQL
|
||||
|
||||
dns:
|
||||
max_outstanding: 50
|
||||
@@ -208,8 +209,6 @@ job_type_keys:
|
||||
Poller: pollers
|
||||
Interactive: interactives
|
||||
|
||||
job_queue: PostgreSQL
|
||||
|
||||
# ---------------
|
||||
# DANCER INTERNAL
|
||||
# ---------------
|
||||
|
||||
Reference in New Issue
Block a user