multi worker actions need not return done from all workers

This commit is contained in:
Oliver Gorwits
2017-10-07 09:35:14 +01:00
parent ee38bae48a
commit 256c10bae5
13 changed files with 32 additions and 49 deletions

View File

@@ -25,7 +25,7 @@ register_worker({ stage => 'check' }, sub {
return Status->defer("arpnip deferred: $device is not arpnipable") return Status->defer("arpnip deferred: $device is not arpnipable")
unless is_arpnipable_now($device); unless is_arpnipable_now($device);
return Status->done('Arpnip is able to run'); return Status->done('arpnip is able to run');
}); });
true; true;

View File

@@ -22,12 +22,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
# TODO: IPv6 subnets # TODO: IPv6 subnets
my $now = 'to_timestamp('. (join '.', gettimeofday) .')'; my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
store_subnet($_, $now) for @subnets; store_subnet($_, $now) for @subnets;
debug sprintf ' [%s] arpnip - processed %s Subnet entries',
$device->ip, scalar @subnets;
return Status->done("Ended arpnip for $device"); return Status->noop(sprintf ' [%s] arpnip - processed %s Subnet entries',
$device->ip, scalar @subnets);
}); });
# gathers device subnets # gathers device subnets

View File

@@ -59,8 +59,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
} # ALIAS } # ALIAS
} }
return Status->done("Ended discover for $device") return true if $new_ip eq $old_ip;
if $new_ip eq $old_ip;
schema('netdisco')->txn_do(sub { schema('netdisco')->txn_do(sub {
# delete target device with the same vendor and serial number # delete target device with the same vendor and serial number
@@ -72,11 +71,9 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
$device->renumber($new_ip) $device->renumber($new_ip)
or die "cannot renumber to: $new_ip"; # rollback or die "cannot renumber to: $new_ip"; # rollback
debug sprintf ' [%s] device - changed IP to %s (%s)', return Status->noop(sprintf ' [%s] device - changed IP to %s (%s)',
$old_ip, $device->ip, ($device->dns || ''); $old_ip, $device->ip, ($device->dns || ''));
}); });
return Status->done("Ended discover for $device");
}); });
true; true;

View File

@@ -40,11 +40,9 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
}); });
}); });
debug return Status->noop(
sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)', sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)',
$device->ip; $device->ip);
return Status->done("Ended discover for $device");
} }
my $e_descr = $snmp->e_descr; my $e_descr = $snmp->e_descr;
@@ -86,11 +84,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
debug sprintf ' [%s] modules - removed %d chassis modules', debug sprintf ' [%s] modules - removed %d chassis modules',
$device->ip, $gone; $device->ip, $gone;
$device->modules->populate(\@modules); $device->modules->populate(\@modules);
debug sprintf ' [%s] modules - added %d new chassis modules',
$device->ip, scalar @modules;
});
return Status->done("Ended discover for $device"); return Status->noop(sprintf ' [%s] modules - added %d new chassis modules',
$device->ip, scalar @modules);
});
}); });
true; true;

View File

@@ -141,11 +141,10 @@ register_worker({ stage => 'early', driver => 'snmp' }, sub {
$device->ip, $gone; $device->ip, $gone;
$device->update_or_insert(undef, {for => 'update'}); $device->update_or_insert(undef, {for => 'update'});
$device->ports->populate([values %interfaces]); $device->ports->populate([values %interfaces]);
debug sprintf ' [%s] interfaces - added %d new interfaces',
$device->ip, scalar values %interfaces;
});
return Status->done("Ended discover for $device"); return Status->noop(sprintf ' [%s] interfaces - added %d new interfaces',
$device->ip, scalar values %interfaces);
});
}); });
true; true;

View File

@@ -61,7 +61,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
}); });
} }
return Status->done("Ended discover for $device"); return true;
}); });
=head2 store_neighbors( $device ) =head2 store_neighbors( $device )

View File

@@ -18,8 +18,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
my $p_status = $snmp->peth_power_status; my $p_status = $snmp->peth_power_status;
if (!defined $p_watts) { if (!defined $p_watts) {
debug sprintf ' [%s] power - 0 power modules', $device->ip; return Status->noop(sprintf ' [%s] power - 0 power modules', $device->ip);
return Status->done("Ended discover for $device");
} }
# build device module power info suitable for DBIC # build device module power info suitable for DBIC
@@ -72,11 +71,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
debug sprintf ' [%s] power - removed %d PoE capable ports', debug sprintf ' [%s] power - removed %d PoE capable ports',
$device->ip, $gone; $device->ip, $gone;
$device->powered_ports->populate(\@portpower); $device->powered_ports->populate(\@portpower);
debug sprintf ' [%s] power - added %d new PoE capable ports',
$device->ip, scalar @portpower;
});
return Status->done("Ended discover for $device"); return Status->noop(sprintf ' [%s] power - added %d new PoE capable ports',
$device->ip, scalar @portpower);
});
}); });
true; true;

View File

@@ -12,7 +12,7 @@ use Dancer::Plugin::DBIC 'schema';
use NetAddr::IP::Lite ':lower'; use NetAddr::IP::Lite ':lower';
use Encode; use Encode;
register_worker({ stage => 'check', driver => 'snmp' }, sub { register_worker({ stage => 'main', driver => 'snmp' }, sub {
my ($job, $workerconf) = @_; my ($job, $workerconf) = @_;
my $device = $job->device; my $device = $job->device;

View File

@@ -85,11 +85,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
debug sprintf ' [%s] vlans - removed %d port VLANs', debug sprintf ' [%s] vlans - removed %d port VLANs',
$device->ip, $gone; $device->ip, $gone;
$device->port_vlans->populate(\@portvlans); $device->port_vlans->populate(\@portvlans);
debug sprintf ' [%s] vlans - added %d new port VLANs',
$device->ip, scalar @portvlans;
});
return Status->done("Ended discover for $device"); return Status->noop(sprintf ' [%s] vlans - added %d new port VLANs',
$device->ip, scalar @portvlans);
});
}); });
true; true;

View File

@@ -15,8 +15,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
or return Status->defer("discover failed: could not SNMP connect to $device"); or return Status->defer("discover failed: could not SNMP connect to $device");
my $ssidlist = $snmp->i_ssidlist; my $ssidlist = $snmp->i_ssidlist;
return Status->done("Ended discover for $device") return true unless scalar keys %$ssidlist;
unless scalar keys %$ssidlist;
my $interfaces = $snmp->interfaces; my $interfaces = $snmp->interfaces;
my $ssidbcast = $snmp->i_ssidbcast; my $ssidbcast = $snmp->i_ssidbcast;
@@ -76,11 +75,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
debug sprintf ' [%s] wireless - removed %d wireless channels', debug sprintf ' [%s] wireless - removed %d wireless channels',
$device->ip, $gone; $device->ip, $gone;
$device->wireless_ports->populate(\@channels); $device->wireless_ports->populate(\@channels);
debug sprintf ' [%s] wireless - added %d new wireless channels',
$device->ip, scalar @channels;
});
return Status->done("Ended discover for $device"); return Status->noop(sprintf ' [%s] wireless - added %d new wireless channels',
$device->ip, scalar @channels);
});
}); });
true; true;

View File

@@ -33,7 +33,7 @@ register_worker({ stage => 'main' }, sub {
} }
} }
return Status->done("Ended discover for $device"); return true;
}); });
true; true;

View File

@@ -18,17 +18,15 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
my $now = 'to_timestamp('. (join '.', gettimeofday) .')'; my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
my $cd11_txrate = $snmp->cd11_txrate; my $cd11_txrate = $snmp->cd11_txrate;
return Status->done("Ended macsuck for $device") return true unless $cd11_txrate and scalar keys %$cd11_txrate;
unless $cd11_txrate and scalar keys %$cd11_txrate;
if (setting('store_wireless_clients')) { if (setting('store_wireless_clients')) {
debug sprintf ' [%s] macsuck - gathering wireless client info', debug sprintf ' [%s] macsuck - gathering wireless client info',
$device->ip; $device->ip;
} }
else { else {
debug sprintf ' [%s] macsuck - dot11 info available but skipped due to config', return Status->noop(sprintf ' [%s] macsuck - dot11 info available but skipped due to config',
$device->ip; $device->ip);
return Status->done("Ended macsuck for $device");
} }
my $cd11_rateset = $snmp->cd11_rateset(); my $cd11_rateset = $snmp->cd11_rateset();
@@ -80,7 +78,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
}); });
} }
return Status->done("Ended macsuck for $device"); return true;
}); });
true; true;

View File

@@ -7,7 +7,6 @@ use aliased 'App::Netdisco::Worker::Status';
use App::Netdisco::Util::NodeMonitor (); use App::Netdisco::Util::NodeMonitor ();
register_worker({ stage => 'main' }, sub { register_worker({ stage => 'main' }, sub {
my ($job, $workerconf) = @_;
App::Netdisco::Util::NodeMonitor::monitor(); App::Netdisco::Util::NodeMonitor::monitor();
return Status->done('Generated monitor data'); return Status->done('Generated monitor data');
}); });