From 90bb0d507e65250f9d9fe83579e6ee2e18d9bb82 Mon Sep 17 00:00:00 2001 From: armingol <pablo.armingolrobles@telefonica.com> Date: Mon, 9 Sep 2024 16:42:02 +0200 Subject: [PATCH] pre merge code cleanup --- .../nbi_plugins/ietf_hardware/YangHandler.py | 25 +++---------------- .../nbi_plugins/tfs_api/__init__.py | 3 +-- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py b/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py index 33611adcf..7662261e9 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py +++ b/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py @@ -46,60 +46,45 @@ class YangHandler: dnode.free() return message - @staticmethod def convert_to_iso_date(date_str: str) -> Optional[str]: date_str = date_str.strip('"') - # Define the regex pattern for ISO 8601 date format pattern = r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[\+\-]\d{2}:\d{2})" - # Check if the input date string matches the pattern if re.match(pattern, date_str): - return date_str # Already in ISO format + return date_str else: try: - # Parse the input date string as a datetime object datetime_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d") - # Convert to ISO format iso_date = datetime_obj.isoformat() + "Z" return iso_date except ValueError: - return None # Invalid date format - + return None def compose(self, device : Device) -> Dict: hardware = self._yang_context.create_data_path('/ietf-network-hardware-inventory:network-hardware-inventory') network_elements = hardware.create_path('network-elements') - + network_element = network_elements.create_path('network-element[uuid="{:s}"]'.format(device.device_id.device_uuid.uuid)) network_element.create_path('uuid', device.device_id.device_uuid.uuid) network_element.create_path('name', device.name) components = network_element.create_path('components') physical_index = 1 - + for component in device.components: attributes = component.attributes - component_new = components.create_path('component[uuid="{:s}"]'.format(component.component_uuid.uuid)) component_new.create_path('name', component.name) - - #Cambiar las clases especiales, su formato y añadir isfru component_type = component.type if component_type == "TRANSCEIVER" : component_type = "module" - if component_type == "FRU" : component_type = "slack" component_type = component_type.replace("_", "-").lower() component_type = 'iana-hardware:' + component_type component_new.create_path('class', component_type) - - #Añadir resto de atributos en IETF - physical_index += 1 - component_new.create_path('description', attributes["description"].replace('/"',"")) - if "CHASSIS" not in component.type: parent_component_references = component_new.create_path('parent-component-references') parent = parent_component_references.create_path('component-reference[index="{:d}"]'.format(physical_index)) @@ -107,7 +92,6 @@ class YangHandler: if component.parent == component_parent.name : parent.create_path('uuid', component_parent.component_uuid.uuid) break - if attributes["mfg-date"] != "": mfg_date = self.convert_to_iso_date(attributes["mfg-date"]) component_new.create_path('mfg-date', mfg_date) @@ -137,7 +121,6 @@ class YangHandler: component_new.create_path('uri', component.name) component_new.create_path('uuid', component.component_uuid.uuid) - for child in device.components: if component.name == child.parent : component_new.create_path('contained-child', child.component_uuid.uuid) diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py index 1f667f134..41e8ff1ea 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py @@ -13,7 +13,6 @@ # limitations under the License. from nbi.service.rest_server.RestServer import RestServer -from nbi.service.rest_server.nbi_plugins.ietf_hardware import Hardware, HardwareMultipleDevices from .Resources import ( Connection, ConnectionIds, Connections, Context, ContextIds, Contexts, @@ -51,7 +50,7 @@ RESOURCES = [ ('api.device_ids', DeviceIds, '/device_ids'), ('api.devices', Devices, '/devices'), ('api.device', Device, '/device/<path:device_uuid>'), - + ('api.link_ids', LinkIds, '/link_ids'), ('api.links', Links, '/links'), ('api.link', Link, '/link/<path:link_uuid>'), -- GitLab