From 182378326e4dc4393cb8bf60cdaf553fd2a9eeb8 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Fri, 23 Aug 2013 06:49:49 +0100 Subject: [PATCH] Duplicate port names are handled without error --- Netdisco/Changes | 6 ++++++ Netdisco/lib/App/Netdisco/Core/Discover.pm | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 0b115c39..07427f07 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,3 +1,9 @@ +2.012006 - 2013-08-23 + + [BUG FIXES] + + * Duplicate port names are handled without error + 2.012005 - 2013-08-16 [ENHANCEMENTS] diff --git a/Netdisco/lib/App/Netdisco/Core/Discover.pm b/Netdisco/lib/App/Netdisco/Core/Discover.pm index 17b5b728..cab35353 100644 --- a/Netdisco/lib/App/Netdisco/Core/Discover.pm +++ b/Netdisco/lib/App/Netdisco/Core/Discover.pm @@ -189,7 +189,7 @@ sub store_interfaces { } # build device interfaces suitable for DBIC - my @interfaces; + my %interfaces; foreach my $entry (keys %$interfaces) { my $port = $interfaces->{$entry}; @@ -231,7 +231,7 @@ sub store_interfaces { } } - push @interfaces, { + $interfaces{$port} = { port => $port, descr => $i_descr->{$entry}, up => $i_up->{$entry}, @@ -255,9 +255,9 @@ sub store_interfaces { debug sprintf ' [%s] interfaces - removed %s interfaces', $device->ip, $gone; $device->update_or_insert(undef, {for => 'update'}); - $device->ports->populate(\@interfaces); + $device->ports->populate([values %interfaces]); debug sprintf ' [%s] interfaces - added %d new interfaces', - $device->ip, scalar @interfaces; + $device->ip, scalar values %interfaces; }); }