diff --git a/beat/backend/python/execution/messagehandlers.py b/beat/backend/python/execution/messagehandlers.py index 51c3d8996df3929361e05b58ba0fd8b831d24247..a93606bb774903a7b9420cd4c632128072445c6a 100644 --- a/beat/backend/python/execution/messagehandlers.py +++ b/beat/backend/python/execution/messagehandlers.py @@ -143,9 +143,9 @@ class MessageHandler(threading.Thread): more = True parts = [] while more: - parts.append(self.socket.recv().decode("utf-8")) + parts.append(self.socket.recv()) more = self.socket.getsockopt(zmq.RCVMORE) - command = parts[0] + command = parts[0].decode("utf-8") if command in self.callbacks: try: # to handle command @@ -176,7 +176,8 @@ class MessageHandler(threading.Thread): import traceback def parser(s): - return s if len(s) < 20 else s[:20] + "..." + parsed = s if len(s) < 20 else s[:20] + b"..." + return parsed.decode("utf-8") parsed_parts = " ".join([parser(k) for k in parts]) message = ( @@ -229,6 +230,9 @@ class MessageHandler(threading.Thread): def error(self, t, msg): """Syntax: err type message""" + t = t.decode("utf-8") + msg = msg.decode("utf-8") + logger.debug("recv: err %s <msg> (size=%d)", t, len(msg)) if t == "usr": @@ -242,6 +246,7 @@ class MessageHandler(threading.Thread): def infos(self, name): """Syntax: ifo name""" + name = name.decode("utf-8") logger.debug("recv: ifo %s", name) if self.data_sources is None: @@ -268,6 +273,9 @@ class MessageHandler(threading.Thread): def get_data(self, name, index): """Syntax: get name index""" + name = name.decode("utf-8") + index = index.decode("utf-8") + logger.debug("recv: get %s %s", name, index) if self.data_sources is None: @@ -393,12 +401,11 @@ class LoopMessageHandler(MessageHandler): Result to be validated. """ - result = result.encode("utf-8") - logger.debug("recv: val %s", result) - data = self.request_data_format.type() data.unpack(result) + logger.debug("recv: val %s", data) + is_valid, answer = self.executor.validate(data) data = make_data_format(answer, self.answer_data_format)