1
0
mirror of https://github.com/thingsboard/thingsboard-gateway synced 2025-10-26 22:31:42 +08:00

Fix for process deleted gateway device rpc in case of duplicate detector is disabled

This commit is contained in:
imbeacon
2024-06-03 11:41:42 +03:00
parent 48fa3af23e
commit 9b322b185a

View File

@@ -662,9 +662,11 @@ class TBGatewayService:
if deleted_device_name in self.__saved_devices: if deleted_device_name in self.__saved_devices:
del self.__saved_devices[deleted_device_name] del self.__saved_devices[deleted_device_name]
log.debug("Device %s - was removed from __saved_devices", deleted_device_name) log.debug("Device %s - was removed from __saved_devices", deleted_device_name)
self.__duplicate_detector.delete_device(deleted_device_name) if hasattr(self, "__duplicate_detector"):
self.__duplicate_detector.delete_device(deleted_device_name)
self.__save_persistent_devices() self.__save_persistent_devices()
self.__load_persistent_devices() self.__load_persistent_devices()
return True
def __process_renamed_gateway_devices(self, renamed_device: dict): def __process_renamed_gateway_devices(self, renamed_device: dict):
if self.__config.get('handleDeviceRenaming', True): if self.__config.get('handleDeviceRenaming', True):
@@ -683,6 +685,7 @@ class TBGatewayService:
else: else:
log.debug("Received renamed device notification %r, but device renaming handle is disabled", log.debug("Received renamed device notification %r, but device renaming handle is disabled",
renamed_device) renamed_device)
return True
def __process_remote_configuration(self, new_configuration): def __process_remote_configuration(self, new_configuration):
if new_configuration is not None and self.__remote_configurator is not None: if new_configuration is not None and self.__remote_configurator is not None:
@@ -1275,7 +1278,7 @@ class TBGatewayService:
"code": 404} "code": 404}
if result is None: if result is None:
self.send_rpc_reply(None, request_id, success_sent=False) self.send_rpc_reply(None, request_id, success_sent=False)
elif "qos" in result: elif isinstance(result, dict) and "qos" in result:
self.send_rpc_reply(None, request_id, self.send_rpc_reply(None, request_id,
dumps({k: v for k, v in result.items() if k != "qos"}), dumps({k: v for k, v in result.items() if k != "qos"}),
quality_of_service=result["qos"]) quality_of_service=result["qos"])