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