routed neighbors only queue if not also l2 neighbor
This commit is contained in:
@@ -60,10 +60,10 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
|
||||
next;
|
||||
}
|
||||
|
||||
my $device = get_device($ip);
|
||||
next if $device->in_storage;
|
||||
my $newdev = get_device($ip);
|
||||
next if $newdev->in_storage;
|
||||
|
||||
if (not is_discoverable($device, $remote_type)) {
|
||||
if (not is_discoverable($newdev, $remote_type)) {
|
||||
debug sprintf
|
||||
' queue - skip: %s of type [%s] excluded by discover_* config',
|
||||
$ip, ($remote_type || '');
|
||||
@@ -80,8 +80,9 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
|
||||
($remote_id ? (device_key => $remote_id) : ()),
|
||||
});
|
||||
|
||||
debug sprintf ' queue - queued device %s (ID: [%s])',
|
||||
$ip, ($remote_id || '');
|
||||
vars->{'queued'}->{$ip} = true;
|
||||
debug sprintf ' [%s] queue - queued %s for discovery (ID: [%s])',
|
||||
$device, $ip, ($remote_id || '');
|
||||
}
|
||||
|
||||
return Status->info(sprintf ' [%s] neigh - processed %s neighbors',
|
||||
@@ -250,8 +251,7 @@ sub store_neighbors {
|
||||
}
|
||||
|
||||
# what we came here to do.... discover the neighbor
|
||||
debug sprintf
|
||||
' [%s] neigh - adding neighbor %s, ID [%s], on %s to discovery queue',
|
||||
debug sprintf ' [%s] neigh - %s with ID [%s] on %s',
|
||||
$device->ip, $remote_ip, ($remote_id || ''), $port;
|
||||
push @to_discover, [$remote_ip, $remote_type, $remote_id];
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
|
||||
foreach my $ip ((values %$ospf_peers), (values %$bgp_peers)) {
|
||||
my $peer = get_device($ip);
|
||||
next if $peer->in_storage or not is_discoverable($peer);
|
||||
next if vars->{'queued'}->{$ip};
|
||||
|
||||
jq_insert({
|
||||
device => $ip,
|
||||
@@ -34,7 +35,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
|
||||
});
|
||||
|
||||
$count++;
|
||||
debug sprintf ' [%s] neigh - queued discovery of peer %s', $device, $ip;
|
||||
debug sprintf ' [%s] queue - queued %s for discovery (peer)', $device, $ip;
|
||||
}
|
||||
|
||||
return Status->info(" [$device] neigh - $count peers added to queue.");
|
||||
|
||||
@@ -70,7 +70,7 @@ register_worker({ phase => 'early', driver => 'snmp' }, sub {
|
||||
if ($device->ip ne $db_device->ip) {
|
||||
return schema('netdisco')->txn_do(sub {
|
||||
$device->delete;
|
||||
return $job->cancel("fresh discover cancelled: $device already known");
|
||||
return $job->cancel("fresh discover cancelled: $device already known as $db_device");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user