From db7c480be471b07eb9a27c76bc53fb46d3404bb2 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 2 Aug 2022 20:25:50 +0100 Subject: [PATCH] #877 fix Port VLAN Mismatches report incorrect with Cisco subinterfaces --- lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm b/lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm index 09119b4e..f73d249d 100644 --- a/lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm +++ b/lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm @@ -14,7 +14,13 @@ __PACKAGE__->result_source_instance->view_definition(<<'ENDSQL'); array_to_string(array_agg( CASE WHEN native THEN 'n:' || vlan::text ELSE vlan::text END ORDER BY vlan ASC ), ', ') AS vlist - FROM device_port_vlan WHERE vlan NOT IN (1002, 1003, 1004, 1005) GROUP BY ip, port) + FROM (SELECT ip, port, native, vlan FROM device_port_vlan UNION + SELECT dp.ip, dp.port, false, dp2v.vlan + FROM device_port dp + LEFT JOIN device_port dp2 ON (dp.ip = dp2.ip and dp.port = dp2.slave_of) + LEFT JOIN device_port_vlan dp2v ON (dp2.ip = dp2v.ip and dp2.port = dp2v.port) + WHERE dp.has_subinterfaces) alldpv + WHERE vlan NOT IN (1002, 1003, 1004, 1005) GROUP BY ip, port) SELECT CASE WHEN length(ld.dns) > 0 THEN ld.dns ELSE host(ld.ip) END AS left_device, lp.port AS left_port,