#549 clean manual topology after device ports change
This commit is contained in:
@@ -314,6 +314,18 @@ sub set_manual_topology {
|
|||||||
schema('netdisco')->resultset('DevicePort')
|
schema('netdisco')->resultset('DevicePort')
|
||||||
->search({ip => $device->ip})->update({manual_topo => \'false'});
|
->search({ip => $device->ip})->update({manual_topo => \'false'});
|
||||||
|
|
||||||
|
# clear outdated manual topology links
|
||||||
|
my $old_links = schema('netdisco')->resultset('Topology')->search({
|
||||||
|
-or => [
|
||||||
|
{ dev1 => $device->ip,
|
||||||
|
port1 => { '-not_in' => $device->ports->get_column('port')->as_query } },
|
||||||
|
{ dev2 => $device->ip,
|
||||||
|
port2 => { '-not_in' => $device->ports->get_column('port')->as_query } },
|
||||||
|
],
|
||||||
|
})->delete;
|
||||||
|
debug sprintf ' [%s] neigh - removed %d outdated manual topology links',
|
||||||
|
$device->ip, $old_links;
|
||||||
|
|
||||||
my $topo_links = schema('netdisco')->resultset('Topology')
|
my $topo_links = schema('netdisco')->resultset('Topology')
|
||||||
->search({-or => [dev1 => $device->ip, dev2 => $device->ip]});
|
->search({-or => [dev1 => $device->ip, dev2 => $device->ip]});
|
||||||
debug sprintf ' [%s] neigh - setting manual topology links', $device->ip;
|
debug sprintf ' [%s] neigh - setting manual topology links', $device->ip;
|
||||||
|
|||||||
Reference in New Issue
Block a user