Commit 90bb0d50 authored by Pablo Armingol's avatar Pablo Armingol
Browse files

pre merge code cleanup

parent e47151d6
Loading
Loading
Loading
Loading
+4 −21
Original line number Diff line number Diff line
@@ -46,25 +46,19 @@ 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')
@@ -78,28 +72,19 @@ class YangHandler:

        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)
+1 −2
Original line number Diff line number Diff line
@@ -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,