From 5a190682ed2a8efd9ceb67571b3a331255016d9c Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Sat, 24 Jun 2017 16:50:41 +0100 Subject: [PATCH] #317 when renumbering on discover, delete likely duplicate devices --- Changes | 1 + lib/App/Netdisco/Core/Discover.pm | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Changes b/Changes index ddd5bda6..463547e8 100644 --- a/Changes +++ b/Changes @@ -8,6 +8,7 @@ * #320 DNS subroutines are redefined * #318 ACLs with RegExp are very slow - aggressive resolver timeouts + * #317 when renumbering on discover, delete likely duplicate devices 2.036001 - 2017-06-22 diff --git a/lib/App/Netdisco/Core/Discover.pm b/lib/App/Netdisco/Core/Discover.pm index 25e5e0f4..1cc4b73d 100644 --- a/lib/App/Netdisco/Core/Discover.pm +++ b/lib/App/Netdisco/Core/Discover.pm @@ -98,6 +98,12 @@ sub set_canonical_ip { return if $new_ip eq $old_ip; schema('netdisco')->txn_do(sub { + # delete target device with the same vendor and serial number + schema('netdisco')->resultset('Device')->search({ + ip => $new_ip, vendor => $device->vendor, serial => $device->serial, + })->delete; + + # if target device exists then this will die $device->renumber($new_ip) or die "cannot renumber to: $new_ip"; # rollback