From 39d3279b024a3ef2a53df4abad7cdaf32db825c3 Mon Sep 17 00:00:00 2001 From: shay23b Date: Sun, 23 Apr 2023 14:24:37 +0300 Subject: [PATCH] fix produce proto type + error --- memphis/producer.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/memphis/producer.py b/memphis/producer.py index eabbd81..17f4efc 100644 --- a/memphis/producer.py +++ b/memphis/producer.py @@ -52,6 +52,9 @@ async def validate_msg(self, message): message = str(msg.loc.source.body) message = message.encode("utf-8") return message + elif hasattr(message, "SerializeToString"): + msgToSend = message.SerializeToString() + return msgToSend elif not isinstance(message, bytearray) and not isinstance(message, dict): raise MemphisSchemaError("Unsupported message type") else: @@ -78,6 +81,13 @@ def validate_protobuf(self, message): msgToSend = message.SerializeToString() proto_msg.ParseFromString(msgToSend) proto_msg.SerializeToString() + try: + proto_msg.ParseFromString(msgToSend) + proto_msg.SerializeToString() + except Exception as e: + if "parsing message" in str(e): + e = "Error parsing protobuf message" + raise MemphisSchemaError(str(e)) return msgToSend else: