From d369814b17b337da788889424560e7223a2b0e34 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Fri, 5 Apr 2019 14:50:58 +0100 Subject: [PATCH] #549 redux - fix for changing pseudo device ports --- .../Web/Plugin/AdminTask/PseudoDevice.pm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm index bf4b9d38..15d3f15d 100644 --- a/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm +++ b/lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm @@ -73,9 +73,19 @@ ajax '/ajax/control/admin/pseudodevice/update' => require_role admin => sub { } elsif (param('ports') < $count) { my $start = param('ports') + 1; - $device->ports - ->single({port => "Port$_"})->delete - for ($start .. $count); + + foreach my $port ($start .. $count) { + $device->ports + ->single({port => "Port${port}"})->delete; + + # clear outdated manual topology links + schema('netdisco')->resultset('Topology')->search({ + -or => [ + { dev1 => $device->ip, port1 => "Port${port}" }, + { dev2 => $device->ip, port2 => "Port${port}" }, + ], + })->delete; + } } }); };