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';
|
our $VERSION = '2.027003';
|
||||||
|
|
||||||
use App::Netdisco::Environment;
|
use App::Netdisco::Environment;
|
||||||
use Dancer ':script';
|
use App::Netdisco::DefaultSettings;
|
||||||
|
|
||||||
# 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';
|
|
||||||
|
|
||||||
=head1 NAME
|
=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
|
interactives: 2
|
||||||
pollers: 10
|
pollers: 10
|
||||||
sleep_time: 2
|
sleep_time: 2
|
||||||
|
queue: PostgreSQL
|
||||||
|
|
||||||
dns:
|
dns:
|
||||||
max_outstanding: 50
|
max_outstanding: 50
|
||||||
@@ -208,8 +209,6 @@ job_type_keys:
|
|||||||
Poller: pollers
|
Poller: pollers
|
||||||
Interactive: interactives
|
Interactive: interactives
|
||||||
|
|
||||||
job_queue: PostgreSQL
|
|
||||||
|
|
||||||
# ---------------
|
# ---------------
|
||||||
# DANCER INTERNAL
|
# DANCER INTERNAL
|
||||||
# ---------------
|
# ---------------
|
||||||
|
|||||||
Reference in New Issue
Block a user