From afeac23fba6258e01893770c04a8155f295edccb Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 31 Jan 2018 11:49:08 +0000 Subject: [PATCH] #364 expire_nodeip_freshness setting to revert expire to ND1 behavior [skip ci] --- Changes | 1 + lib/App/Netdisco/Worker/Plugin/Expire.pm | 16 ++++++++++++++++ share/config.yml | 1 + 3 files changed, 18 insertions(+) diff --git a/Changes b/Changes index 36e43014..829845e3 100644 --- a/Changes +++ b/Changes @@ -3,6 +3,7 @@ [BUG FIXES] * #367 buttons in the neighbourmap have an incorrect height + * #364 expire_nodeip_freshness setting to revert expire to ND1 behavior 2.038032 - 2018-01-28 diff --git a/lib/App/Netdisco/Worker/Plugin/Expire.pm b/lib/App/Netdisco/Worker/Plugin/Expire.pm index 1a8835d7..11c9709d 100644 --- a/lib/App/Netdisco/Worker/Plugin/Expire.pm +++ b/lib/App/Netdisco/Worker/Plugin/Expire.pm @@ -23,6 +23,14 @@ register_worker({ phase => 'main' }, sub { if (setting('expire_nodes') and setting('expire_nodes') > 0) { schema('netdisco')->txn_do(sub { + my $freshness = ((defined setting('expire_nodeip_freshness')) + ? setting('expire_nodeip_freshness') : setting('expire_nodes')); + if ($freshness) { + schema('netdisco')->resultset('NodeIp')->search({ + time_last => \[q/< (now() - ?::interval)/, ($freshness * 86400)], + })->delete(); + } + schema('netdisco')->resultset('Node')->search({ time_last => \[q/< (now() - ?::interval)/, (setting('expire_nodes') * 86400)], @@ -32,6 +40,14 @@ register_worker({ phase => 'main' }, sub { if (setting('expire_nodes_archive') and setting('expire_nodes_archive') > 0) { schema('netdisco')->txn_do(sub { + my $freshness = ((defined setting('expire_nodeip_freshness')) + ? setting('expire_nodeip_freshness') : setting('expire_nodes_archive')); + if ($freshness) { + schema('netdisco')->resultset('NodeIp')->search({ + time_last => \[q/< (now() - ?::interval)/, ($freshness * 86400)], + })->delete(); + } + schema('netdisco')->resultset('Node')->search({ -not_bool => 'active', time_last => \[q/< (now() - ?::interval)/, diff --git a/share/config.yml b/share/config.yml index d597abaf..fd9e39f6 100644 --- a/share/config.yml +++ b/share/config.yml @@ -235,6 +235,7 @@ expire_devices: 60 expire_nodes: 90 expire_nodes_archive: 60 expire_jobs: 14 +expire_nodeip_freshness: null store_wireless_clients: true store_modules: true ignore_interfaces: