Commit 46122e89 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Service component:

- Fix Driver selection based on controllers
parent e3b5b066
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ class TaskExecutor:
        self, connection : Connection, exclude_managed_by_controller : bool = False
    ) -> Dict[DeviceTypeEnum, Dict[str, Device]]:
        devices : Dict[DeviceTypeEnum, Dict[str, Device]] = dict()
        controllers : Dict[DeviceTypeEnum, Dict[str, Device]] = dict()
        #controllers : Dict[DeviceTypeEnum, Dict[str, Device]] = dict()
        for endpoint_id in connection.path_hops_endpoint_ids:
            device = self.get_device(endpoint_id.device_id)
            device_uuid = endpoint_id.device_id.device_uuid.uuid
@@ -296,9 +296,10 @@ class TaskExecutor:
            controller = self.get_device_controller(device)
            if controller is None:
                device_type = DeviceTypeEnum._value2member_map_[device.device_type]
                if device_type in CONTROLLER_DEVICE_TYPES:
                    controllers.setdefault(device_type, dict())[device_uuid] = device
                else:
                #if device_type in CONTROLLER_DEVICE_TYPES:
                #    controllers.setdefault(device_type, dict())[device_uuid] = device
                #else:
                #    devices.setdefault(device_type, dict())[device_uuid] = device
                devices.setdefault(device_type, dict())[device_uuid] = device
            else:
                # ===== Ryu original test ========================================================================
@@ -321,13 +322,15 @@ class TaskExecutor:
                    devices.setdefault(device_type, dict())[device_uuid] = device
                
                device_type = DeviceTypeEnum._value2member_map_[controller.device_type]
                controllers.setdefault(device_type, dict())[controller.device_id.device_uuid.uuid] = controller
                #controllers.setdefault(device_type, dict())[controller.device_id.device_uuid.uuid] = controller
                devices.setdefault(device_type, dict())[controller.device_id.device_uuid.uuid] = controller
        
        LOGGER.debug('[get_devices_from_connection] devices = {:s}'.format(str(devices)))
        LOGGER.debug('[get_devices_from_connection] controllers = {:s}'.format(str(controllers)))
        if len(devices) == 0 and len(controllers) > 0:
            return controllers
        else:
        #LOGGER.debug('[get_devices_from_connection] controllers = {:s}'.format(str(controllers)))
        #if len(devices) == 0 and len(controllers) > 0:
        #    return controllers
        #else:
        #    return devices
        return devices

    # ----- Service-related methods ------------------------------------------------------------------------------------