diff --git a/Netdisco/bin/netdisco-daemon-fg b/Netdisco/bin/netdisco-daemon-fg index 523c9f69..3ce39b0c 100755 --- a/Netdisco/bin/netdisco-daemon-fg +++ b/Netdisco/bin/netdisco-daemon-fg @@ -44,15 +44,15 @@ sub build_tasks_list { # NB MCE does not like max_workers => 0 my $tasks = []; - set(daemon_pollers => 2) - if !defined setting('daemon_pollers'); - set(daemon_interactives => 2) - if !defined setting('daemon_interactives'); + setting('workers')->{pollers} = 2 + if !defined setting('workers')->{pollers}; + setting('workers')->{interactives} = 2 + if !defined setting('workers')->{interactives}; push @$tasks, { max_workers => 1, user_begin => worker_factory('Manager'), - } if setting('daemon_pollers') or setting('daemon_interactives'); + } if setting('workers')->{pollers} or setting('workers')->{interactives}; push @$tasks, { max_workers => 1, @@ -60,27 +60,27 @@ sub build_tasks_list { } if setting('housekeeping'); push @$tasks, { - max_workers => setting('daemon_pollers'), + max_workers => setting('workers')->{pollers}, user_begin => worker_factory('Poller'), - } if setting('daemon_pollers'); + } if setting('workers')->{pollers}; push @$tasks, { - max_workers => setting('daemon_interactives'), + max_workers => setting('workers')->{interactives}, user_begin => worker_factory('Interactive'), - } if setting('daemon_interactives'); + } if setting('workers')->{interactives}; info sprintf "MCE will load %s tasks: %s Manager, %s Scheduler, %s Poller, %s Interactive", (scalar @$tasks), - ((setting('daemon_pollers') or setting('daemon_interactives')) ? 1 : 0), + ((setting('workers')-{pollers} or setting('workers')->{interactives}) ? 1 : 0), (setting('housekeeping') ? 1 : 0), - (setting('daemon_pollers') || 0), - (setting('daemon_interactives') || 0); + (setting('workers')->{pollers} || 0), + (setting('workers')->{interactives} || 0); return $tasks; } sub num_workers { - return (setting('daemon_pollers') + setting('daemon_interactives')); + return (setting('workers')->{pollers} + setting('workers')->{interactives}); } sub worker_factory { diff --git a/Netdisco/lib/App/Netdisco/Daemon/Queue.pm b/Netdisco/lib/App/Netdisco/Daemon/Queue.pm index bbec8db0..c5ae3a8d 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Queue.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Queue.pm @@ -43,8 +43,8 @@ sub capacity_for { }; my $setting_map = { - Poller => 'daemon_pollers', - Interactive => 'daemon_interactives', + Poller => 'pollers', + Interactive => 'interactives', }; my $role = $role_map->{$action}; @@ -52,7 +52,7 @@ sub capacity_for { my $current = $queue->search({role => $role})->count; - return ($current < setting($setting)); + return ($current < setting('workers')->{$setting})); } sub take_jobs { diff --git a/Netdisco/lib/App/Netdisco/Daemon/Worker/Interactive.pm b/Netdisco/lib/App/Netdisco/Daemon/Worker/Interactive.pm index a575e83c..9ee8c485 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Worker/Interactive.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Worker/Interactive.pm @@ -49,7 +49,7 @@ sub worker_body { } debug "int ($wid): sleeping now..."; - sleep( setting('daemon_sleep_time') || 5 ); + sleep( setting('workers')->{sleep_time} || 5 ); } } diff --git a/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm b/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm index 075d09c3..b87a2629 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm @@ -84,7 +84,7 @@ sub worker_body { # TODO also check for stale jobs in Netdisco DB debug "mgr ($wid): sleeping now..."; - sleep( setting('daemon_sleep_time') || 5 ); + sleep( setting('workers')->{sleep_time} || 5 ); } } diff --git a/Netdisco/lib/App/Netdisco/Daemon/Worker/Poller.pm b/Netdisco/lib/App/Netdisco/Daemon/Worker/Poller.pm index 3eb00346..22f9d71b 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Worker/Poller.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Worker/Poller.pm @@ -51,7 +51,7 @@ sub worker_body { } debug "poll ($wid): sleeping now..."; - sleep( setting('daemon_sleep_time') || 5 ); + sleep( setting('workers')->{sleep_time} || 5 ); } } diff --git a/Netdisco/share/config.yml b/Netdisco/share/config.yml index 587fd0dc..d77d5e00 100644 --- a/Netdisco/share/config.yml +++ b/Netdisco/share/config.yml @@ -64,10 +64,11 @@ snmptimeout: 1000000 # # mibhome: /usr/share/netdisco/mibs -mibdirs: - - cisco - - rfc - - net-snmp +# If unset, loads all MIBs in the mibhome directory. +# mibdirs: +# - cisco +# - rfc +# - net-snmp community: ['public'] community_rw: ['private'] @@ -96,25 +97,17 @@ ignore_interfaces: - '(E|T)\\d \\d\\/\\d\\/\\d' - 'Vlan1' -# sleep time between polls of the database job queue -daemon_sleep_time: 5 - -# how many daemon processes for this node -daemon_interactives: 2 -daemon_pollers: 2 +workers: + # how many daemon processes for this node + interactives: 2 + pollers: 2 + # sleep time between polls of the database job queue + sleep_time: 5 # what housekeeping tasks should this node *schedule* -# (it only does them if daemon_pollers is non-zero) +# (it only does them if workers->pollers is non-zero) #housekeeping: -# discovernew: -# device: '192.0.2.0' -# when: -# wday: 'wed' -# hour: 14 -# backup: -# when: -# hour: 1 -# refresh: +# discoverall: # when: '0 9 * * *' # arpwalk: # when: @@ -122,9 +115,3 @@ daemon_pollers: 2 # macwalk: # when: # hour: '*/2' -# nbtwalk: -# when: -# hour: '8,13,21' -# saveconfigs: -# param: 61 -# when: '0 * * * *' diff --git a/Netdisco/share/environments/deployment.yml b/Netdisco/share/environments/deployment.yml index 8015d90a..01711569 100644 --- a/Netdisco/share/environments/deployment.yml +++ b/Netdisco/share/environments/deployment.yml @@ -37,11 +37,11 @@ plugins: # local settings for Netdisco poller and port changes -mibdirs: - - cisco - - rfc - - net-snmp +# If unset, loads all MIBs +# mibdirs: +# - cisco +# - rfc +# - net-snmp community: ['public'] community_rw: ['private'] -