From 9eb67179721b9ecb0bccb856466ca4c5c9e9fee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Fri, 13 Apr 2018 19:57:04 +0200 Subject: [PATCH] Refactor 'mirror' message enveloping to use new serialization --- lib/tfw/event_handler_base.py | 5 +++-- lib/tfw/networking/event_handlers/server_connector.py | 3 ++- lib/tfw/networking/server/event_handler_connector.py | 6 ++---- lib/tfw/networking/server/zmq_websocket_handler.py | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/tfw/event_handler_base.py b/lib/tfw/event_handler_base.py index 479379d..ab455b0 100644 --- a/lib/tfw/event_handler_base.py +++ b/lib/tfw/event_handler_base.py @@ -3,7 +3,7 @@ from abc import ABC, abstractmethod -from tfw.networking import deserialize_all +from tfw.networking import deserialize_tfw_msg from tfw.networking.event_handlers import ServerConnector @@ -17,7 +17,8 @@ class EventHandlerBase(ABC): self.server_connector.register_callback(self.event_handler_callback) def event_handler_callback(self, msg_parts): - key, message = deserialize_all(*msg_parts) + message = deserialize_tfw_msg(*msg_parts) + key = message['key'] response = self.dispatch_handling(key, message) response['key'] = key if response is None: diff --git a/lib/tfw/networking/event_handlers/server_connector.py b/lib/tfw/networking/event_handlers/server_connector.py index fa98f21..5613bbb 100644 --- a/lib/tfw/networking/event_handlers/server_connector.py +++ b/lib/tfw/networking/event_handlers/server_connector.py @@ -30,8 +30,9 @@ class ServerUplinkConnector(ZMQConnectorBase): self._zmq_push_socket.connect('tcp://localhost:{}'.format(TFWENV.RECEIVER_PORT)) def send_to_eventhandler(self, message): - message['data']['key'] = message['key'] + nested_message = {'key': message['key'], 'data': message.pop('data')} message['key'] = 'mirror' + message['data'] = nested_message self.send(message) def send(self, message): diff --git a/lib/tfw/networking/server/event_handler_connector.py b/lib/tfw/networking/server/event_handler_connector.py index d8f3801..41b6b54 100644 --- a/lib/tfw/networking/server/event_handler_connector.py +++ b/lib/tfw/networking/server/event_handler_connector.py @@ -4,7 +4,7 @@ import zmq from zmq.eventloop.zmqstream import ZMQStream -from tfw.networking import ZMQConnectorBase, serialize_all +from tfw.networking import ZMQConnectorBase, serialize_tfw_msg from tfw.config import TFWENV from tfw.config.logs import logging @@ -35,6 +35,4 @@ class EventHandlerConnector(EventHandlerDownlinkConnector, EventHandlerUplinkCon self._zmq_pull_stream.on_recv(callback) def send_message(self, message: dict, key: str = None): - if not key: - key = message.get('key', '') - self._zmq_pub_socket.send_multipart(serialize_all(key, message)) + self._zmq_pub_socket.send_multipart(serialize_tfw_msg(message)) diff --git a/lib/tfw/networking/server/zmq_websocket_handler.py b/lib/tfw/networking/server/zmq_websocket_handler.py index b6da675..f0b865a 100644 --- a/lib/tfw/networking/server/zmq_websocket_handler.py +++ b/lib/tfw/networking/server/zmq_websocket_handler.py @@ -40,13 +40,13 @@ class ZMQWebSocketHandler(WebSocketHandler, ABC): instance.write_message(message) else: try: - keyhandlers[key](message['data']) + keyhandlers[key](message) except KeyError: LOG.error('Invalid mirror message format! Ignoring.') - def mirror(self, data): - key = data['key'] - self._event_handler_connector.send_message({'data': data}, key) + def mirror(self, message): + message = message['data'] + self._event_handler_connector.send_message(message, message['key']) def on_message(self, message): LOG.debug('Received on WebSocket: %s', message)