cue/contrib/image-elements/cue-rabbitmq-base/post-install.d/80-testing

65 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -eux
pip install pika
cat > /opt/rabbitmq_test.py << EOF
import argparse
import time
import pika
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-H", "--host", required=True,
help="Specify the RabbitMQ host")
parser.add_argument("-R", "--receive",
help="Specify the RabbitMQ host to receive message")
parser.add_argument("-P", "--port", required=True,
help="Specify the RabbitMQ port",
type=int)
parser.add_argument("-u", "--user", required=True,
help="Specify the RabbitMQ username")
parser.add_argument("-p", "--password", required=True,
help="Specify the RabbitMQ password")
parser.add_argument("--ssl", dest="ssl", action="store_true",
help="Specify whether to use AMQPS protocol")
args = parser.parse_args()
host = args.host
credentials = pika.PlainCredentials(args.user, args.password)
connection = pika.BlockingConnection(pika.ConnectionParameters(
credentials=credentials, host=host, port=args.port, ssl=args.ssl))
channel = connection.channel()
channel.queue_declare(queue='hello')
if args.receive:
connection_receive = pika.BlockingConnection(pika.ConnectionParameters(
credentials=credentials, host=args.receive, port=args.port,
ssl=args.ssl))
channel_receive = connection_receive.channel()
channel_receive.queue_declare(queue='hello')
else:
channel_receive = channel
for count in range(1, 10, 1):
print("Sending...")
channel.basic_publish(exchange='', routing_key='hello',
body='Hello World!' + str(count))
print(" [x] Sent 'Hello World!'" + str(count))
print("Receiving...")
method_frame, header_frame, body = channel_receive.basic_get('hello')
if method_frame:
print(method_frame, header_frame, body)
channel_receive.basic_ack(method_frame.delivery_tag)
else:
print('No message returned')
time.sleep(1)
connection.close()
EOF
chmod 777 /opt/rabbitmq_test.py