From 85caed47cfaa2e264b2f89be22707892a78d1377 Mon Sep 17 00:00:00 2001 From: samson0v Date: Mon, 21 Nov 2022 12:32:47 +0200 Subject: [PATCH] Fixed RPC for Request Connector --- .../connectors/request/request_connector.py | 14 +++++++++++--- thingsboard_gateway/gateway/tb_gateway_service.py | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/thingsboard_gateway/connectors/request/request_connector.py b/thingsboard_gateway/connectors/request/request_connector.py index 85282213..ca581ff2 100644 --- a/thingsboard_gateway/connectors/request/request_connector.py +++ b/thingsboard_gateway/connectors/request/request_connector.py @@ -115,8 +115,8 @@ class RequestConnector(Connector, Thread): response_queue = Queue(1) request_dict = {"config": {**rpc_request, **converted_data}, - "request": request} - request_dict["config"].get("uplink_converter") + "request": request, + "withResponse": True} rpc_request_thread = Thread(target=self.__send_request, args=(request_dict, response_queue, log), daemon=True, @@ -127,7 +127,10 @@ class RequestConnector(Connector, Thread): response = response_queue.get_nowait() log.debug(response) self.__gateway.send_rpc_reply(device=content["device"], req_id=content["data"]["id"], - content=response[2]) + content=response.text) + del response_queue + return + self.__gateway.send_rpc_reply(device=content["device"], req_id=content["data"]["id"], success_sent=True) @@ -201,6 +204,11 @@ class RequestConnector(Connector, Thread): params["headers"] = request["config"]["httpHeaders"] logger.debug("Request to %s will be sent", url) response = request["request"](**params) + + if request.get('withResponse'): + converter_queue.put(response) + return + if response and response.ok: if not converter_queue.full(): data_to_storage = [url, request["converter"]] diff --git a/thingsboard_gateway/gateway/tb_gateway_service.py b/thingsboard_gateway/gateway/tb_gateway_service.py index 0d3d8af1..2ed9a202 100644 --- a/thingsboard_gateway/gateway/tb_gateway_service.py +++ b/thingsboard_gateway/gateway/tb_gateway_service.py @@ -1027,7 +1027,7 @@ class TBGatewayService: log.info("Outgoing RPC. Device: %s, ID: %d", device, req_id) self.send_rpc_reply(device, req_id, content) - @StatisticsService.CollectRPCReplyStatistics(start_stat_type='all_bytes_sent') + @StatisticsService.CollectRPCReplyStatistics(start_stat_type='allBytesSentToTB') def send_rpc_reply(self, device=None, req_id=None, content=None, success_sent=None, wait_for_publish=None, quality_of_service=0): self.__rpc_processing_queue.put((device, req_id, content, success_sent, wait_for_publish, quality_of_service))