From 64217bc440f3d61effbda9d499be1f75bec0e518 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Thu, 4 Mar 2021 10:29:01 +0100 Subject: [PATCH] ignore subinterfaces of inactive interfaces --- inventory_provider/juniper.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/inventory_provider/juniper.py b/inventory_provider/juniper.py index e1348600..e76463ee 100644 --- a/inventory_provider/juniper.py +++ b/inventory_provider/juniper.py @@ -207,19 +207,23 @@ def list_interfaces(netconf_config): return ifc - def _units(base_name, node): - for u in node.xpath('./unit'): - if u.get('inactive', None) == 'inactive': + def _inactive(interface_node): + return interface_node.get('inactive', None) == 'inactive' + + def _units(base_name, interface_node): + for u in interface_node.xpath('./unit'): + if _inactive(u): continue unit_info = _ifc_info(u) unit_info['name'] = "%s.%s" % (base_name, unit_info['name']) yield unit_info for i in netconf_config.xpath('//configuration/interfaces/interface'): + if _inactive(i): + continue info = _ifc_info(i) yield info - for u in _units(info['name'], i): - yield u + yield from _units(info['name'], i) for i in netconf_config.xpath( '//configuration/logical-systems/interfaces/interface'): -- GitLab