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; | ||||
		Reference in New Issue
	
	Block a user