do not set master neigh if master is a slave

This commit is contained in:
Oliver Gorwits
2014-01-13 13:57:31 +00:00
parent 5b2a0a0a4b
commit fe3e8e3ef2

View File

@@ -792,18 +792,20 @@ sub store_neighbors {
my $master = schema('netdisco')->resultset('DevicePort') my $master = schema('netdisco')->resultset('DevicePort')
->single({ip => $device->ip, port => $portrow->slave_of})) { ->single({ip => $device->ip, port => $portrow->slave_of})) {
# TODO needs refactoring - this is quite expensive if (not ($portrow->is_master or defined $master->slave_of)) {
my $peer = schema('netdisco')->resultset('DevicePort')->find({ # TODO needs refactoring - this is quite expensive
ip => $portrow->neighbor->ip, my $peer = schema('netdisco')->resultset('DevicePort')->find({
port => $portrow->remote_port, ip => $portrow->neighbor->ip,
}) if $portrow->neighbor; port => $portrow->remote_port,
}) if $portrow->neighbor;
$master->update({ $master->update({
remote_ip => ($peer ? $peer->ip : $remote_ip), remote_ip => ($peer ? $peer->ip : $remote_ip),
remote_port => ($peer ? $peer->slave_of : undef ), remote_port => ($peer ? $peer->slave_of : undef ),
is_uplink => \"true", is_uplink => \"true",
manual_topo => \"false", manual_topo => \"false",
}); });
}
} }
} }