From ded005deb1304f6943c160d0974e2acee305e576 Mon Sep 17 00:00:00 2001 From: Armingol Date: Thu, 26 Oct 2023 17:46:28 +0200 Subject: [PATCH 1/3] Add support for new vendor in Openconfig Driver --- .../service/drivers/openconfig/OpenConfigDriver.py | 13 ++++++++++++- .../drivers/openconfig/templates/Inventory.py | 4 +--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py index b34efbc8f..00e99d934 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 0d98d7288..2ae67ba47 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) -- GitLab From 0bca73aa7a150fefcec5f8a9921f8a434ee9db5e Mon Sep 17 00:00:00 2001 From: Armingol Date: Thu, 26 Oct 2023 17:50:11 +0200 Subject: [PATCH 2/3] code cleanup --- src/device/service/drivers/openconfig/OpenConfigDriver.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py index 00e99d934..58b550d88 100644 --- a/src/device/service/drivers/openconfig/OpenConfigDriver.py +++ b/src/device/service/drivers/openconfig/OpenConfigDriver.py @@ -53,7 +53,6 @@ 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: @@ -112,14 +111,8 @@ class NetconfSessionHandler: def get(self, filter=None, with_defaults=None): # pylint: disable=redefined-builtin with self.__lock: 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 -- GitLab From d4e799781a46494c1bc5e76317b1d2874cdcc5f2 Mon Sep 17 00:00:00 2001 From: Armingol Date: Thu, 26 Oct 2023 17:51:02 +0200 Subject: [PATCH 3/3] code cleanup --- src/device/service/drivers/openconfig/OpenConfigDriver.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py index 58b550d88..8c6e07b3f 100644 --- a/src/device/service/drivers/openconfig/OpenConfigDriver.py +++ b/src/device/service/drivers/openconfig/OpenConfigDriver.py @@ -53,7 +53,6 @@ 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') - class NetconfSessionHandler: def __init__(self, address : str, port : int, **settings) -> None: self.__lock = threading.RLock() -- GitLab