From 5595a5d092f24c552c0fab29436f284b80f7b364 Mon Sep 17 00:00:00 2001
From: Armingol <pablo.armingolrobles@telefonica.com>
Date: Thu, 8 Feb 2024 08:42:18 +0100
Subject: [PATCH] Fix get query parse

---
 .../drivers/openconfig/templates/Interfaces.py        | 11 +++++------
 .../service/drivers/openconfig/templates/Inventory.py |  7 +++----
 .../drivers/openconfig/templates/RoutingPolicy.py     |  2 +-
 3 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/device/service/drivers/openconfig/templates/Interfaces.py b/src/device/service/drivers/openconfig/templates/Interfaces.py
index 3d4c73fc1..51ee9fc66 100644
--- a/src/device/service/drivers/openconfig/templates/Interfaces.py
+++ b/src/device/service/drivers/openconfig/templates/Interfaces.py
@@ -31,10 +31,6 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]:
 
         interface = {}
 
-        interface_name = xml_interface.find('oci:name', namespaces=NAMESPACES)
-        if interface_name is None or interface_name.text is None: continue
-        add_value_from_tag(interface, 'name', interface_name)
-
         #interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES)
         #add_value_from_tag(interface, 'type', interface_type)
 
@@ -42,8 +38,11 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]:
             interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES)
         elif xml_interface.find('oci:state/oci:type', namespaces=NAMESPACES) is not None:
             interface_type = xml_interface.find('oci:state/oci:type', namespaces=NAMESPACES)
-        else:
-            interface_type = ''
+        else: continue
+            
+        interface_name = xml_interface.find('oci:name', namespaces=NAMESPACES)
+        if interface_name is None or interface_name.text is None: continue
+        add_value_from_tag(interface, 'name', interface_name)
             
         # Get the type of interface according to the vendor's type
         if 'ianaift:' in interface_type.text:
diff --git a/src/device/service/drivers/openconfig/templates/Inventory.py b/src/device/service/drivers/openconfig/templates/Inventory.py
index 2ae67ba47..916af0478 100644
--- a/src/device/service/drivers/openconfig/templates/Inventory.py
+++ b/src/device/service/drivers/openconfig/templates/Inventory.py
@@ -54,7 +54,6 @@ XPATH_PORTS = "//ocp:components/ocp:component"
 
 def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]:
     response = []
-    LOGGER.debug("InventoryPrueba")
     parent_types = {}
     for xml_component in xml_data.xpath(XPATH_PORTS, namespaces=NAMESPACES):
         LOGGER.info('xml_component inventario = {:s}'.format(str(ET.tostring(xml_component))))
@@ -78,9 +77,9 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]:
             add_value_from_tag(inventory['attributes'], 'location', component_location)
         
         component_type = xml_component.find('ocp:state/ocp:type', namespaces=NAMESPACES)
-        component_type.text = component_type.text.replace('oc-platform-types:','')
-        if component_type is None: continue
-        add_value_from_tag(inventory, 'class', component_type)
+        if component_type is not None:
+            component_type.text = component_type.text.replace('oc-platform-types:','')
+            add_value_from_tag(inventory, 'class', component_type)
         
         if inventory['class'] == 'CPU' or inventory['class'] == 'STORAGE': continue
 
diff --git a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py
index acafa0218..96dc1c5a4 100644
--- a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py
+++ b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py
@@ -35,7 +35,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]:
         #LOGGER.info('xml_policy_definition = {:s}'.format(str(ET.tostring(xml_policy_definition))))
 
         policy_definition = {}
-
+        statement_name = ''
         policy_name = xml_policy_definition.find('ocrp:name', namespaces=NAMESPACES)
         if policy_name is None or policy_name.text is None: continue
         add_value_from_tag(policy_definition, 'policy_name', policy_name)
-- 
GitLab