Skip to content

Commit c53a171

Browse files
add security modes support:SSL, PLAINTEXT.
1 parent 544a8d3 commit c53a171

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

main.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@
2323

2424

2525
# function produce_msgs starts producing messages with Faker
26-
def produce_msgs(cert_folder = '~/kafka-pizza/',
26+
def produce_msgs(security_protocol='SSL',
27+
cert_folder = '~/kafka-pizza/',
2728
hostname = 'hostname',
2829
port = '1234',
2930
topic_name = 'pizza-orders',
3031
nr_messages = -1,
3132
max_waiting_time_in_sec = 5,
3233
subject = 'pizza'):
33-
if cert_folder.lower() == 'plaintext':
34+
if security_protocol.upper() == 'PLAINTEXT':
3435
producer = KafkaProducer(
3536
bootstrap_servers=hostname + ':' + port,
3637
security_protocol='PLAINTEXT',
@@ -92,20 +93,23 @@ def produce_msgs(cert_folder = '~/kafka-pizza/',
9293

9394
def main():
9495
parser = argparse.ArgumentParser()
95-
parser.add_argument('--cert-folder', help='Path to folder containing required Kafka certificates or use plaintext to work with unsecure Kafka', required=True)
96+
parser.add_argument('--security-protocol', help='Security protocol for Kafka (PLAINTEXT, SSL)', required=True)
97+
parser.add_argument('--cert-folder', help='Path to folder containing required Kafka certificates. Required --security-protocol equal SSL', required=False)
9698
parser.add_argument('--host', help='Kafka Host (obtained from Aiven console)', required=True)
9799
parser.add_argument('--port', help='Kafka Port (obtained from Aiven console)', required=True)
98100
parser.add_argument('--topic-name', help='Topic Name', required=True)
99101
parser.add_argument('--nr-messages', help='Number of messages to produce (0 for unlimited)', required=True)
100102
parser.add_argument('--max-waiting-time', help='Max waiting time between messages (0 for none)', required=True)
101103
parser.add_argument('--subject', help='What type of content to produce (possible choices are [pizza, userbehaviour, stock, realstock, metric] pizza is the default', required=False)
102104
args = parser.parse_args()
105+
p_security_protocol = args.security_protocol
103106
p_cert_folder =args.cert_folder
104107
p_hostname =args.host
105108
p_port =args.port
106109
p_topic_name=args.topic_name
107110
p_subject=args.subject
108-
produce_msgs(cert_folder=p_cert_folder,
111+
produce_msgs(security_protocol=p_security_protocol,
112+
cert_folder=p_cert_folder,
109113
hostname=p_hostname,
110114
port=p_port,
111115
topic_name=p_topic_name,

0 commit comments

Comments
 (0)