From af16e1f4f9cdbe23182ad59cdf86a4bdc3e9d52c Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Thu, 1 Jan 2015 18:38:39 +0000 Subject: [PATCH] [#15] Undiscovered Neighbor report JOIN fixed, and updated to include the ports where Macsuck saw the MAC address of a known Device --- Netdisco/Changes | 2 ++ .../Result/Virtual/UndiscoveredNeighbors.pm | 19 +++++++++++-------- .../ajax/admintask/undiscoveredneighbors.tt | 19 +++++++++++++------ .../admintask/undiscoveredneighbors_csv.tt | 2 +- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/Netdisco/Changes b/Netdisco/Changes index 8d114239..2393576b 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -15,6 +15,8 @@ * Fix for node search on some formats of IPv6 addr being seen as MAC * [#190] Ignore entries in the discover form that don't look like IP/hostname * Delete all job queue entries (regardless of status) when deleting device + * [#15] Undiscovered Neighbor report JOIN fixed, and updated to include + the ports where Macsuck saw the MAC address of a known Device 2.029014 - 2014-11-19 diff --git a/Netdisco/lib/App/Netdisco/DB/Result/Virtual/UndiscoveredNeighbors.pm b/Netdisco/lib/App/Netdisco/DB/Result/Virtual/UndiscoveredNeighbors.pm index 94d14c18..427e716d 100644 --- a/Netdisco/lib/App/Netdisco/DB/Result/Virtual/UndiscoveredNeighbors.pm +++ b/Netdisco/lib/App/Netdisco/DB/Result/Virtual/UndiscoveredNeighbors.pm @@ -22,14 +22,17 @@ __PACKAGE__->result_source_instance->view_definition(<<'ENDSQL'); a.log, a.finished FROM device_port p - JOIN device d ON d.ip = p.ip - JOIN ADMIN a ON p.remote_ip = a.device - WHERE p.remote_ip NOT IN - (SELECT ALIAS - FROM device_ip) - AND a.action = 'discover' - ORDER BY p.remote_ip, - a.finished DESC + JOIN device d + ON d.ip = p.ip + LEFT JOIN admin a + ON (p.remote_ip = a.device AND a.action = 'discover') + WHERE + (p.remote_ip NOT IN (SELECT alias FROM device_ip)) + OR + ((p.remote_ip IS NULL) AND p.is_uplink) + ORDER BY + p.remote_ip ASC, + a.finished DESC ENDSQL __PACKAGE__->add_columns( diff --git a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt index 204b04f8..5bcfb7af 100644 --- a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt +++ b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors.tt @@ -1,7 +1,7 @@ - + @@ -12,11 +12,18 @@ - + diff --git a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors_csv.tt b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors_csv.tt index 78cef5fb..f69d9016 100644 --- a/Netdisco/share/views/ajax/admintask/undiscoveredneighbors_csv.tt +++ b/Netdisco/share/views/ajax/admintask/undiscoveredneighbors_csv.tt @@ -1,5 +1,5 @@ [% USE CSV -%] -[% CSV.dump([ 'Device Triggering Last Discovery Attempt' 'Device Port' +[% CSV.dump([ 'Observing Device' 'Device Port' 'Remote IP' 'Remote Port' 'Remote ID' 'Remote Type' 'Last Discovery Attempt' 'Discovery Log']) %]
Device Location Triggering
Last Discovery Attempt
Observing Device Undiscovered Neighbor Last Discovery Attempt Last Discovery Log
[% row.dns || row.name || row.ip | html_entity %] ( [% row.port | html_entity %] ) - [% row.remote_ip | html_entity %] - ([% row.remote_port | html_entity %]) - [% ' id: '_ row.remote_id IF row.remote_id %] - [% ' type: '_ row.remote_type IF row.remote_type %] + [% IF row.remote_ip %] + + [% row.remote_ip | html_entity %] + ([% row.remote_port | html_entity %]) + [% '
' IF row.remote_id or row.remote_type %] + [% ' id: '_ row.remote_id IF row.remote_id %] + [% ' type: '_ row.remote_type IF row.remote_type %] + [% ELSE %] + Known Device's MAC Address seen on this Port during Macsuck + [% END %] +
[% row.finished | html_entity %] [% row.log | html_entity %]