diff --git a/Changes b/Changes index b697d85b..9c0ddee2 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,9 @@ +2.037004 - 2017-12-21 + + [BUG FIXES] + + * Allow default schedule items to be skipped by setting to 'null' + 2.037003 - 2017-12-18 [BUG FIXES] diff --git a/bin/netdisco-do b/bin/netdisco-do index ed84659a..08d82bd2 100755 --- a/bin/netdisco-do +++ b/bin/netdisco-do @@ -341,6 +341,11 @@ Set the PoE on/off status on a device port. Requires the C<-d> parameter ~netdisco/bin/netdisco-do power -d 192.0.2.1 -p FastEthernet0/1 -e on ~netdisco/bin/netdisco-do power -d 192.0.2.1 -p FastEthernet0/1 -e off +=head2 dumpconfig + +Will dump the loaded and parsed configuration for the application. Pass a +specific configuration setting name to the C<-e> parameter to dump only that. + =head1 DEBUG LEVELS The flags "C<-DISQ>" can be specified, multiple times, and enable the diff --git a/lib/App/Netdisco/Backend/Role/Scheduler.pm b/lib/App/Netdisco/Backend/Role/Scheduler.pm index a62f3f22..eb946258 100644 --- a/lib/App/Netdisco/Backend/Role/Scheduler.pm +++ b/lib/App/Netdisco/Backend/Role/Scheduler.pm @@ -20,7 +20,8 @@ sub worker_begin { debug "entering Scheduler ($wid) worker_begin()"; foreach my $action (keys %{ setting('schedule') }) { - my $config = setting('schedule')->{$action}; + my $config = setting('schedule')->{$action} + or next; # accept either single crontab format, or individual time fields $config->{when} = Algorithm::Cron->new( @@ -59,7 +60,8 @@ sub worker_body { # if any job is due, add it to the queue foreach my $action (keys %{ setting('schedule') }) { - my $sched = setting('schedule')->{$action}; + my $sched = setting('schedule')->{$action} + or next; # next occurence of job must be in this minute's window debug sprintf "sched ($wid): $action: win_start: %s, win_end: %s, next: %s", diff --git a/lib/App/Netdisco/Worker/Plugin/DumpConfig.pm b/lib/App/Netdisco/Worker/Plugin/DumpConfig.pm new file mode 100644 index 00000000..3c57288a --- /dev/null +++ b/lib/App/Netdisco/Worker/Plugin/DumpConfig.pm @@ -0,0 +1,18 @@ +package App::Netdisco::Worker::Plugin::DumpConfig; + +use Dancer ':syntax'; +use App::Netdisco::Worker::Plugin; +use aliased 'App::Netdisco::Worker::Status'; + +use Data::Printer; + +register_worker({ phase => 'main' }, sub { + my ($job, $workerconf) = @_; + my $extra = $job->extra; + + my $config = config(); + p ($extra ? $config->{$extra} : $config); + return Status->done('Dumped config'); +}); + +true; diff --git a/share/config.yml b/share/config.yml index d79ab2af..07d0d387 100644 --- a/share/config.yml +++ b/share/config.yml @@ -330,6 +330,7 @@ worker_plugins: - 'Discover::Wireless' - 'Discover::WithNodes' - 'DiscoverAll' + - 'DumpConfig' - 'Expire' - 'ExpireNodes' - 'Graph'