Commit 54640353 authored by Leandro Campos's avatar Leandro Campos
Browse files

sap-topology updated

parent d2710461
Loading
Loading
Loading
Loading
+22 −17
Original line number Diff line number Diff line
@@ -80,16 +80,30 @@ class YangHandler:
        
    def compose_node(self, dev: Device, name_mappings: NameMappings, network: Any, connected_tps: set) -> None:      



        device_name = dev.name
        name_mappings.store_device_name(dev)

        node = network.create_path(f'node[node-id="{device_name}"]')
        node.create_path('node-id', device_name)
        context_client = ContextClient()
        device = context_client.GetDevice(DeviceId(**json_device_id(device_name)))
    
        
        for config in device.device_config.config_rules:
            if config.WhichOneof('config_rule') == 'custom' and config.custom.resource_key == '_connect/settings':
                try:
                    settings_data = json.loads(config.custom.resource_value)
                    sap_device = settings_data.get('sap_id') 
                except ValueError:
                    sap_device = "ERROR"
                break 
        sap_device = "SAP"+ str(sap_device)

        node = network.create_path(f'node[node-id="{sap_device}"]')
        node.create_path('node-id', sap_device)

    

        context_client = ContextClient()
        device = context_client.GetDevice(DeviceId(**json_device_id(device_name)))

        for endpoint in device.device_endpoints:
            name_mappings.store_endpoint_name(dev, endpoint)
@@ -97,25 +111,16 @@ class YangHandler:

        

        self._process_device_config(device, node, connected_tps)
        self._process_device_config(device, node, connected_tps, sap_device)


   
    
    def _process_device_config(self, device: Device, node: Any, connected_tps: set) -> None:
    def _process_device_config(self, device: Device, node: Any, connected_tps: set, sap_device: str) -> None:
        #sLOGGER.info(f"Métodos disponibles en 'node': {dir(node)}")
        #LOGGER.info(f"Métodos disponibles en 'nedevice': {dir(device)}")
        sap_device = ""
        for config in device.device_config.config_rules:
            
            if config.WhichOneof('config_rule') == 'custom' and config.custom.resource_key == '_connect/settings':
                try:
                    settings_data = json.loads(config.custom.resource_value)
                    sap_device = settings_data.get('sap_id', "")
                except ValueError:
                    sap_device = "ERROR"
        sap_device = sap_device

                break
                
        for config in device.device_config.config_rules: