From ef10a63f58363d945985df007b690081368537a5 Mon Sep 17 00:00:00 2001 From: Panagiotis Famelis Date: Wed, 1 Feb 2023 15:47:01 +0200 Subject: [PATCH 1/4] fix: return None for endpoints instead of exception --- src/device/service/drivers/p4/p4_driver.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py index 606bb91eb..07998242c 100644 --- a/src/device/service/drivers/p4/p4_driver.py +++ b/src/device/service/drivers/p4/p4_driver.py @@ -29,7 +29,7 @@ from .p4_common import matches_ipv4, matches_ipv6, valid_port,\ P4_ATTR_DEV_P4BIN, P4_ATTR_DEV_P4INFO, P4_ATTR_DEV_TIMEOUT,\ P4_VAL_DEF_VENDOR, P4_VAL_DEF_HW_VER, P4_VAL_DEF_SW_VER,\ P4_VAL_DEF_TIMEOUT -from .p4_manager import P4Manager, KEY_TABLE,\ +from .p4_manager import P4Manager, KEY_TABLE, KEY_ACTION, \ KEY_ACTION_PROFILE, KEY_COUNTER, KEY_DIR_COUNTER, KEY_METER, KEY_DIR_METER,\ KEY_CTL_PKT_METADATA from .p4_client import WriteOperation @@ -201,6 +201,8 @@ class P4Driver(_Driver): chk_type("resources", resource_keys, list) with self.__lock: + LOGGER.warning(resource_keys) + LOGGER.warning(self.__get_resources(resource_keys)) return self.__get_resources(resource_keys) @metered_subclass_method(METRICS_POOL) @@ -448,6 +450,10 @@ class P4Driver(_Driver): ap_name) if ap_entries: entries.append(ap_entries) + elif KEY_ACTION == resource_key: + """To be implemented or deprecated""" + elif '__endpoints__' == resource_key: + """Not Supported for P4 devices""" elif KEY_CTL_PKT_METADATA == resource_key: msg = f"{resource_key.capitalize()} is not a " \ f"retrievable resource" -- GitLab From 72a847685f0dddcd9ce4dbb9d1819e5f2068469e Mon Sep 17 00:00:00 2001 From: Panagiotis Famelis Date: Wed, 1 Feb 2023 15:53:31 +0200 Subject: [PATCH 2/4] fix: Check if endpoints returned are None --- src/device/service/Tools.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/device/service/Tools.py b/src/device/service/Tools.py index 05610e1d2..17edcfaf9 100644 --- a/src/device/service/Tools.py +++ b/src/device/service/Tools.py @@ -83,6 +83,7 @@ def populate_endpoints(device : Device, driver : _Driver, monitoring_loops : Mon results_getconfig = driver.GetConfig(resources_to_get) errors : List[str] = list() + LOGGER.warning(results_getconfig) for endpoint in results_getconfig: if len(endpoint) != 2: errors.append(ERROR_BAD_ENDPOINT.format(device_uuid, str(endpoint))) @@ -92,6 +93,8 @@ def populate_endpoints(device : Device, driver : _Driver, monitoring_loops : Mon if isinstance(resource_value, Exception): errors.append(ERROR_GET.format(device_uuid, str(resource_key), str(resource_value))) continue + if resource_value is None: + continue endpoint_uuid = resource_value.get('uuid') -- GitLab From 9e25cff43cfe9fd0a5bec9eb53d0d771b4e1b0df Mon Sep 17 00:00:00 2001 From: Panagiotis Famelis Date: Wed, 1 Feb 2023 16:02:16 +0200 Subject: [PATCH 3/4] fix: remove debug loggers --- src/device/service/Tools.py | 1 - src/device/service/drivers/p4/p4_driver.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/device/service/Tools.py b/src/device/service/Tools.py index 17edcfaf9..11a2e49b8 100644 --- a/src/device/service/Tools.py +++ b/src/device/service/Tools.py @@ -83,7 +83,6 @@ def populate_endpoints(device : Device, driver : _Driver, monitoring_loops : Mon results_getconfig = driver.GetConfig(resources_to_get) errors : List[str] = list() - LOGGER.warning(results_getconfig) for endpoint in results_getconfig: if len(endpoint) != 2: errors.append(ERROR_BAD_ENDPOINT.format(device_uuid, str(endpoint))) diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py index 07998242c..4e13b93e4 100644 --- a/src/device/service/drivers/p4/p4_driver.py +++ b/src/device/service/drivers/p4/p4_driver.py @@ -201,8 +201,6 @@ class P4Driver(_Driver): chk_type("resources", resource_keys, list) with self.__lock: - LOGGER.warning(resource_keys) - LOGGER.warning(self.__get_resources(resource_keys)) return self.__get_resources(resource_keys) @metered_subclass_method(METRICS_POOL) -- GitLab From 0006eca29663e01805bae5f38e7675fd20727160 Mon Sep 17 00:00:00 2001 From: Panagiotis Famelis Date: Wed, 1 Feb 2023 16:21:30 +0200 Subject: [PATCH 4/4] fix: add pass to empty cases --- src/device/service/drivers/p4/p4_driver.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py index 4e13b93e4..6057c07ba 100644 --- a/src/device/service/drivers/p4/p4_driver.py +++ b/src/device/service/drivers/p4/p4_driver.py @@ -449,9 +449,11 @@ class P4Driver(_Driver): if ap_entries: entries.append(ap_entries) elif KEY_ACTION == resource_key: - """To be implemented or deprecated""" + #To be implemented or deprecated + pass elif '__endpoints__' == resource_key: - """Not Supported for P4 devices""" + #Not Supported for P4 devices + pass elif KEY_CTL_PKT_METADATA == resource_key: msg = f"{resource_key.capitalize()} is not a " \ f"retrievable resource" -- GitLab