copy all remaining messages from netdisco 1
This commit is contained in:
@@ -158,7 +158,7 @@ sub store_interfaces {
|
|||||||
|
|
||||||
if (scalar grep {$port =~ m/$_/} @{setting('ignore_interfaces') || []}) {
|
if (scalar grep {$port =~ m/$_/} @{setting('ignore_interfaces') || []}) {
|
||||||
debug sprintf
|
debug sprintf
|
||||||
' [%s] interfaces - ignoring %s (%s) (requested in config)',
|
' [%s] interfaces - ignoring %s (%s) (config:ignore_interfaces)',
|
||||||
$device->ip, $entry, $port;
|
$device->ip, $entry, $port;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@@ -380,7 +380,7 @@ sub store_power {
|
|||||||
my $p_status = $snmp->peth_power_status;
|
my $p_status = $snmp->peth_power_status;
|
||||||
|
|
||||||
if (!defined $p_watts) {
|
if (!defined $p_watts) {
|
||||||
# TODO log
|
debug sprintf ' [%s] power - 0 power modules', $device->ip;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -448,7 +448,7 @@ sub store_modules {
|
|||||||
my $e_index = $snmp->e_index;
|
my $e_index = $snmp->e_index;
|
||||||
|
|
||||||
if (!defined $e_index) {
|
if (!defined $e_index) {
|
||||||
# TODO log
|
debug sprintf ' [%s] modules - 0 chassis components', $device->ip;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ sub find_neighbors {
|
|||||||
|
|
||||||
my $c_ip = $snmp->c_ip;
|
my $c_ip = $snmp->c_ip;
|
||||||
unless ($snmp->hasCDP or scalar keys %$c_ip) {
|
unless ($snmp->hasCDP or scalar keys %$c_ip) {
|
||||||
# TODO log
|
debug sprintf ' [%s] neigh - CDP/LLDP not enabled!', $device->ip;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -523,7 +523,8 @@ sub find_neighbors {
|
|||||||
foreach my $entry (keys %$c_ip) {
|
foreach my $entry (keys %$c_ip) {
|
||||||
my $port = $interfaces->{ $c_ip->{$entry} };
|
my $port = $interfaces->{ $c_ip->{$entry} };
|
||||||
if (!defined $port) {
|
if (!defined $port) {
|
||||||
# TODO log
|
debug sprintf ' [%s] neigh - port for IID:%s not resolved, skipping',
|
||||||
|
$device->ip, $entry;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -544,7 +545,9 @@ sub find_neighbors {
|
|||||||
if ($remote_id) {
|
if ($remote_id) {
|
||||||
my $devices = schema('netdisco')->resultset('Device');
|
my $devices = schema('netdisco')->resultset('Device');
|
||||||
my $neigh = $devices->single({name => $remote_id});
|
my $neigh = $devices->single({name => $remote_id});
|
||||||
# TODO log
|
info sprintf
|
||||||
|
' [%s] neigh - bad address %s on port %s, searching for %s instead',
|
||||||
|
$device->ip, $remote_ip, $port, $remote_id;
|
||||||
|
|
||||||
if (!defined $neigh) {
|
if (!defined $neigh) {
|
||||||
(my $shortid = $remote_id) =~ s/\..*//;
|
(my $shortid = $remote_id) =~ s/\..*//;
|
||||||
@@ -553,26 +556,36 @@ sub find_neighbors {
|
|||||||
|
|
||||||
if ($neigh) {
|
if ($neigh) {
|
||||||
$remote_ip = $neigh->ip;
|
$remote_ip = $neigh->ip;
|
||||||
# TODO log
|
info sprintf ' [%s] neigh - found %s with IP %s',
|
||||||
|
$device->ip, $remote_id, $remote_ip;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# TODO log
|
info sprintf ' [%s] neigh - could not find %s, skipping',
|
||||||
|
$device->ip, $remote_id;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# TODO log
|
info sprintf ' [%s] neigh - skipping unuseable address %s on port %s',
|
||||||
|
$device->ip, $remote_ip, $port;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# hack for devices seeing multiple neighbors on the port
|
# hack for devices seeing multiple neighbors on the port
|
||||||
if (ref [] eq ref $remote_ip) {
|
if (ref [] eq ref $remote_ip) {
|
||||||
|
debug sprintf
|
||||||
|
' [%s] neigh - port %s has multiple neighbors, setting remote as self',
|
||||||
|
$device->ip, $port;
|
||||||
|
|
||||||
foreach my $n (@$remote_ip) {
|
foreach my $n (@$remote_ip) {
|
||||||
# TODO log
|
debug sprintf
|
||||||
|
' [%s] neigh - adding neighbor %s, type %s, on %s to discovery queue',
|
||||||
|
$device->ip, $n, $remote_type, $port;
|
||||||
_enqueue_discover($n, $remote_type);
|
_enqueue_discover($n, $remote_type);
|
||||||
}
|
}
|
||||||
# set loopback as remote IP to suppress any further work
|
|
||||||
|
# set self as remote IP to suppress any further work
|
||||||
$remote_ip = $device->ip;
|
$remote_ip = $device->ip;
|
||||||
$remote_port = $port;
|
$remote_port = $port;
|
||||||
}
|
}
|
||||||
@@ -584,7 +597,8 @@ sub find_neighbors {
|
|||||||
$remote_port =~ s/[^\d\/\.,()\w:-]+//gi;
|
$remote_port =~ s/[^\d\/\.,()\w:-]+//gi;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# TODO log
|
info sprintf ' [%s] neigh - no remote port found for port %s at %s',
|
||||||
|
$device->ip, $port, $remote_ip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,7 +612,8 @@ sub find_neighbors {
|
|||||||
->single({ip => $device->ip, port => $port});
|
->single({ip => $device->ip, port => $port});
|
||||||
|
|
||||||
if (!defined $portrow) {
|
if (!defined $portrow) {
|
||||||
# TODO log
|
info sprintf ' [%s] neigh - local port %s not in database!',
|
||||||
|
$device->ip, $port;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -609,6 +624,9 @@ sub find_neighbors {
|
|||||||
remote_id => $remote_id,
|
remote_id => $remote_id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
debug sprintf
|
||||||
|
' [%s] neigh - adding neighbor %s, type %s, on %s to discovery queue',
|
||||||
|
$device->ip, $remote_ip, $remote_type, $port;
|
||||||
_enqueue_discover($remote_ip, $remote_type);
|
_enqueue_discover($remote_ip, $remote_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -621,14 +639,11 @@ sub _enqueue_discover {
|
|||||||
my $device = get_device($ip);
|
my $device = get_device($ip);
|
||||||
return if $device->in_storage;
|
return if $device->in_storage;
|
||||||
|
|
||||||
# XXX should this be checked by process _taking_ the job?
|
|
||||||
# ok.. the job will sit queued, but nothing will ever action it.
|
|
||||||
# but that could still tie up workers :-(
|
|
||||||
#
|
|
||||||
my $remote_type_match = setting('discover_no_type');
|
my $remote_type_match = setting('discover_no_type');
|
||||||
if ($remote_type and $remote_type_match
|
if ($remote_type and $remote_type_match
|
||||||
and $remote_type =~ m/$remote_type_match/) {
|
and $remote_type =~ m/$remote_type_match/) {
|
||||||
# TODO log
|
debug sprintf ' queue - %s, type %s excluded by discover_no_type',
|
||||||
|
$ip, $remote_type;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,7 +654,6 @@ sub _enqueue_discover {
|
|||||||
action => 'discover',
|
action => 'discover',
|
||||||
status => 'queued',
|
status => 'queued',
|
||||||
});
|
});
|
||||||
# TODO log
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user