Ensures that messages pass to kafka client are bytes string

Story: 2003178
Task: 23324

Change-Id: I3ae6830fbbe80bf56726886d658c55dda965d717
This commit is contained in:
Adrian Czarnecki 2018-07-26 11:22:03 +02:00
parent 55dbc317ff
commit 304772fa18
1 changed files with 6 additions and 5 deletions

View File

@ -16,6 +16,7 @@
import logging
import time
from oslo_utils import encodeutils
from six import PY3
import monasca_common.kafka_lib.client as kafka_client
@ -53,11 +54,11 @@ class KafkaProducer(object):
success = False
if key is None:
key = int(time.time() * 1000)
if PY3:
key = bytes(str(key), 'utf-8')
messages = [m.encode("utf-8") for m in messages]
else:
key = str(key)
messages = [encodeutils.to_utf8(m) for m in messages]
key = bytes(str(key), 'utf-8') if PY3 else str(key)
while not success:
try:
self._producer.send_messages(topic, key, *messages)