diff --git a/scripts/lua/modules/tag_utils.lua b/scripts/lua/modules/tag_utils.lua index ec8b8aee0f..d5ad007943 100644 --- a/scripts/lua/modules/tag_utils.lua +++ b/scripts/lua/modules/tag_utils.lua @@ -5,10 +5,6 @@ local dirs = ntop.getDirs() package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path --- Enable trace with "redis-cli set ntopng.debug.do_trace 1" --- Disablee trace with "redis-cli del ntopng.debug.do_trace" -local do_trace = ntop.getPref("ntopng.debug.do_trace") - require "lua_utils" local alert_entities = require "alert_entities" local alert_consts = require "alert_consts" @@ -670,7 +666,6 @@ function tag_utils.get_tag_info(id, entity) end elseif tag.value_type == "snmp_interface" then - if do_trace == "1" then traceError(TRACE_NORMAL, TRACE_CONSOLE, "Trace A") end if ntop.isPro() then filter.value_type = 'array' @@ -680,16 +675,23 @@ function tag_utils.get_tag_info(id, entity) else filter.options = {} + -- Active flow devices + local flow_devices = interface.getFlowDevices() + + -- SNMP devices local snmp_config = require "snmp_config" local devices = snmp_config.get_all_configured_devices() - if do_trace == "1" then traceError(TRACE_NORMAL, TRACE_CONSOLE, "Trace B") end local snmp_cached_dev = require "snmp_cached_dev" - if do_trace == "1" then traceError(TRACE_NORMAL, TRACE_CONSOLE, "Trace C") end - -- use pairsByKeys to impose order for probe_ip, _ in pairsByKeys(devices) do + + if flow_devices[probe_ip] then + -- Use SNMP info, remove from flow devices list + flow_devices[probe_ip] = nil + end + local cached_device = snmp_cached_dev:get_interface_names(probe_ip) local probe_label @@ -715,8 +717,19 @@ function tag_utils.get_tag_info(id, entity) end end - if do_trace == "1" then traceError(TRACE_NORMAL, TRACE_CONSOLE, "Trace D") end - + + -- Add interfaces for flow devices which are not polled by SNMP + for probe_ip, info in pairs(flow_devices) do + local interfaces = interface.getFlowDeviceInfo(probe_ip) + for interface_id, interface_info in pairs(interfaces) do + local label = probe_ip .. ' ยท ' .. format_portidx_name(probe_ip, interface_id, true, true) + filter.options[#filter.options+1] = { + value = probe_ip .. "_" ..interface_id, + label = label, + } + end + end + snmp_filter_options_cache = filter.options end end