refactor layer and pseudo checks
This commit is contained in:
@@ -17,7 +17,10 @@ register_worker({ stage => 'check' }, sub {
|
||||
unless $device->in_storage;
|
||||
|
||||
return Status->defer("arpnip skipped: $device is pseudo-device")
|
||||
if $device->vendor and $device->vendor eq 'netdisco';
|
||||
if $device->is_pseudo;
|
||||
|
||||
return Status->defer("arpnip skipped: $device has no layer 3 capability")
|
||||
unless $device->has_layer(3);
|
||||
|
||||
return Status->defer("arpnip deferred: $device is not arpnipable")
|
||||
unless is_arpnipable_now($device);
|
||||
|
||||
@@ -18,9 +18,6 @@ register_worker({ stage => 'check', driver => 'snmp' }, sub {
|
||||
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
|
||||
or return Status->defer("arpnip failed: could not SNMP connect to $device");
|
||||
|
||||
return Status->defer("Skipped arpnip for device $device without layer 3 capability")
|
||||
unless $snmp->has_layer(3);
|
||||
|
||||
# get v4 arp table
|
||||
my $v4 = get_arps($device, $snmp->at_paddr, $snmp->at_netaddr);
|
||||
# get v6 neighbor cache
|
||||
|
||||
@@ -17,9 +17,6 @@ register_worker({ stage => 'second', driver => 'snmp' }, sub {
|
||||
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
|
||||
or return Status->defer("arpnip failed: could not SNMP connect to $device");
|
||||
|
||||
return Status->defer("Skipped arpnip for device $device without layer 3 capability")
|
||||
unless $snmp->has_layer(3);
|
||||
|
||||
# get directly connected networks
|
||||
my @subnets = gather_subnets($device, $snmp);
|
||||
# TODO: IPv6 subnets
|
||||
|
||||
@@ -13,15 +13,13 @@ register_worker({ stage => 'check' }, sub {
|
||||
return Status->error('discover failed: unable to interpret device param')
|
||||
unless defined $device;
|
||||
|
||||
my $host = $device->ip;
|
||||
|
||||
return Status->error("discover failed: no device param (need -d ?)")
|
||||
if $host eq '0.0.0.0';
|
||||
if $device->ip eq '0.0.0.0';
|
||||
|
||||
return Status->defer("discover skipped: $host is pseudo-device")
|
||||
if $device->vendor and $device->vendor eq 'netdisco';
|
||||
return Status->defer("discover skipped: $device is pseudo-device")
|
||||
if $device->is_pseudo;
|
||||
|
||||
return Status->defer("discover deferred: $host is not discoverable")
|
||||
return Status->defer("discover deferred: $device is not discoverable")
|
||||
unless is_discoverable_now($device);
|
||||
|
||||
return Status->done('discover is able to run.');
|
||||
|
||||
@@ -14,7 +14,7 @@ register_worker({ stage => 'second' }, sub {
|
||||
# arpniped/macsucked, queue those jobs now
|
||||
if ($device->in_storage
|
||||
and $job->subaction and $job->subaction eq 'with-nodes') {
|
||||
if (!defined $device->last_macsuck) {
|
||||
if (!defined $device->last_macsuck and $device->has_layer(2)) {
|
||||
jq_insert({
|
||||
device => $device->ip,
|
||||
action => 'macsuck',
|
||||
@@ -23,7 +23,7 @@ register_worker({ stage => 'second' }, sub {
|
||||
});
|
||||
}
|
||||
|
||||
if (!defined $device->last_arpnip) {
|
||||
if (!defined $device->last_arpnip and $device->has_layer(3)) {
|
||||
jq_insert({
|
||||
device => $device->ip,
|
||||
action => 'arpnip',
|
||||
|
||||
@@ -17,7 +17,10 @@ register_worker({ stage => 'check' }, sub {
|
||||
unless $device->in_storage;
|
||||
|
||||
return Status->defer("macsuck skipped: $device is pseudo-device")
|
||||
if $device->vendor and $device->vendor eq 'netdisco';
|
||||
if $device->is_pseudo;
|
||||
|
||||
return Status->defer("arpnip skipped: $device has no layer 2 capability")
|
||||
unless $device->has_layer(2);
|
||||
|
||||
return Status->defer("macsuck deferred: $device is not macsuckable")
|
||||
unless is_macsuckable_now($device);
|
||||
|
||||
@@ -21,9 +21,6 @@ register_worker({ stage => 'check', driver => 'snmp' }, sub {
|
||||
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
|
||||
or return Status->defer("macsuck failed: could not SNMP connect to $device");
|
||||
|
||||
return Status->defer("Skipped macsuck for device $device without layer 2 capability")
|
||||
unless $snmp->has_layer(2);
|
||||
|
||||
# would be possible just to use now() on updated records, but by using this
|
||||
# same value for them all, we can if we want add a job at the end to
|
||||
# select and do something with the updated set (see set archive, below)
|
||||
|
||||
@@ -15,9 +15,6 @@ register_worker({ stage => 'second', driver => 'snmp' }, sub {
|
||||
my $snmp = App::Netdisco::Transport::SNMP->reader_for($device)
|
||||
or return Status->defer("macsuck failed: could not SNMP connect to $device");
|
||||
|
||||
return Status->defer("Skipped macsuck for device $device without layer 2 capability")
|
||||
unless $snmp->has_layer(2);
|
||||
|
||||
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
|
||||
|
||||
my $cd11_txrate = $snmp->cd11_txrate;
|
||||
|
||||
Reference in New Issue
Block a user