diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py index b34efbc8fbcc8e4a340e8c2282268b9f0246fddc..00e99d934d357e16a53da5a39d518ada7b894feb 100644 --- a/src/device/service/drivers/openconfig/OpenConfigDriver.py +++ b/src/device/service/drivers/openconfig/OpenConfigDriver.py @@ -53,6 +53,8 @@ MAX_RETRIES = 15 DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') +LOGGER = logging.getLogger(__name__) + class NetconfSessionHandler: def __init__(self, address : str, port : int, **settings) -> None: self.__lock = threading.RLock() @@ -109,7 +111,16 @@ class NetconfSessionHandler: @RETRY_DECORATOR def get(self, filter=None, with_defaults=None): # pylint: disable=redefined-builtin with self.__lock: - return self.__manager.get(filter=filter, with_defaults=with_defaults) + if self.__vendor == 'JUNIPER'and not 'component' in str(filter): + LOGGER.info('filtros = {:s}'.format(str(filter))) + data = self.__manager.get_config(source="running", filter=filter, with_defaults=with_defaults) + LOGGER.info('resultado = {:s}'.format(str(data))) + return self.__manager.get_config(source="running", filter=filter, with_defaults=with_defaults) + else: + LOGGER.info('filtros2 = {:s}'.format(str(filter))) + data = self.__manager.get(filter=filter, with_defaults=with_defaults) + LOGGER.info('resultado2 = {:s}'.format(str(data))) + return self.__manager.get(filter=filter, with_defaults=with_defaults) @RETRY_DECORATOR def edit_config( diff --git a/src/device/service/drivers/openconfig/templates/Inventory.py b/src/device/service/drivers/openconfig/templates/Inventory.py index 0d98d72882695038d9d3ddbc2c9b86564d21d5b0..2ae67ba47dad162b8c8e4a15d3004b27359d4ca2 100644 --- a/src/device/service/drivers/openconfig/templates/Inventory.py +++ b/src/device/service/drivers/openconfig/templates/Inventory.py @@ -89,9 +89,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: add_value_from_tag(inventory['attributes'], 'empty', component_empty) component_parent = xml_component.find('ocp:state/ocp:parent', namespaces=NAMESPACES) - if component_parent is None or component_parent.text is None: - add_value_from_tag(inventory, 'parent-component-references', component_type) - else: + if not component_parent is None: add_value_from_tag(inventory, 'parent-component-references', component_parent) component_HW = xml_component.find('ocp:state/ocp:hardware-version', namespaces=NAMESPACES)