From cc8afab9086cbbaf65a7b1713e2198251aa752b8 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 9 Feb 2023 09:51:19 +0000 Subject: [PATCH] Device component: - Corrected driver instantiation/selection --- .../service/DeviceServiceServicerImpl.py | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py index 0258380a1..be40e64ec 100644 --- a/src/device/service/DeviceServiceServicerImpl.py +++ b/src/device/service/DeviceServiceServicerImpl.py @@ -109,7 +109,7 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): if device is None: raise NotFoundException('Device', device_uuid, extra_details='loading in ConfigureDevice') - driver : _Driver = self.driver_instance_cache.get(device_uuid) + driver : _Driver = get_driver(self.driver_instance_cache, device) if driver is None: msg = ERROR_MISSING_DRIVER.format(device_uuid=str(device_uuid)) raise OperationFailedException('ConfigureDevice', extra_details=msg) @@ -150,6 +150,11 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): self.mutex_queues.wait_my_turn(device_uuid) try: context_client = ContextClient() + device = get_device(context_client, device_uuid, rw_copy=False) + if device is None: + raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice') + device_uuid = device.device_id.device_uuid.uuid + self.monitoring_loops.remove_device(device_uuid) self.driver_instance_cache.delete(device_uuid) context_client.RemoveDevice(request) @@ -163,7 +168,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): self.mutex_queues.wait_my_turn(device_uuid) try: - driver : _Driver = self.driver_instance_cache.get(device_uuid) + context_client = ContextClient() + device = get_device(context_client, device_uuid, rw_copy=False) + if device is None: + raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice') + + driver : _Driver = get_driver(self.driver_instance_cache, device) if driver is None: msg = ERROR_MISSING_DRIVER.format(device_uuid=str(device_uuid)) raise OperationFailedException('GetInitialConfig', extra_details=msg) @@ -197,7 +207,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): self.mutex_queues.wait_my_turn(device_uuid) try: - driver : _Driver = self.driver_instance_cache.get(device_uuid) + context_client = ContextClient() + device = get_device(context_client, device_uuid, rw_copy=False) + if device is None: + raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice') + + driver : _Driver = get_driver(self.driver_instance_cache, device) if driver is None: msg = ERROR_MISSING_DRIVER.format(device_uuid=str(device_uuid)) raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) -- GitLab