#411 store_modules: false is ignored

This commit is contained in:
Oliver Gorwits
2018-05-05 16:12:43 +01:00
parent fa6f70ac8a
commit 0d8cd3e764
2 changed files with 34 additions and 23 deletions

View File

@@ -3,6 +3,7 @@
[BUG FIXES]
* #413 manual retrigger of discovery does not work
* #411 store_modules: false is ignored
2.039027 - 2018-04-28

View File

@@ -8,18 +8,9 @@ use App::Netdisco::Transport::SNMP ();
use Dancer::Plugin::DBIC 'schema';
use Encode;
register_worker({ phase => 'main', driver => 'snmp' }, sub {
my ($job, $workerconf) = @_;
my $clean = sub {
my $device = shift;
my $device = $job->device;
return unless $device->in_storage;
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
or return Status->defer("discover failed: could not SNMP connect to $device");
my $e_index = $snmp->e_index;
if (!defined $e_index) {
schema('netdisco')->txn_do(sub {
my $gone = $device->modules->delete;
debug sprintf ' [%s] modules - removed %d chassis modules',
$device->ip, $gone;
@@ -39,8 +30,27 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
fru => \'false',
last_discover => \'now()',
});
});
};
register_worker({ phase => 'main', driver => 'snmp' }, sub {
my ($job, $workerconf) = @_;
my $device = $job->device;
return unless $device->in_storage;
if (not setting('store_modules')) {
schema('netdisco')->txn_do($clean, $device);
return Status->info(
sprintf ' [%s] modules - store_modules is disabled (added one pseudo for chassis)',
$device->ip);
}
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
or return Status->defer("discover failed: could not SNMP connect to $device");
my $e_index = $snmp->e_index;
if (!defined $e_index) {
schema('netdisco')->txn_do($clean, $device);
return Status->info(
sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)',
$device->ip);