Commit 88da0dc5 authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Modified AMQP client.

parent adcc1e69
Loading
Loading
Loading
Loading
+39 −21
Original line number Diff line number Diff line
import pika
import uuid
import json
import sys


class AMQPClient(object):

    def __init__(self):
    def __init__(self, rpcQueue):
        self.rpcQueue = rpcQueue
        self.connection = pika.BlockingConnection(pika.ConnectionParameters(host = 'rabbitmq'))
        self.channel = self.connection.channel()
        result = self.channel.queue_declare(queue = '', exclusive = True)
@@ -20,7 +22,7 @@ class AMQPClient(object):
        self.response = None
        self.corr_id = str(uuid.uuid4())
        self.channel.basic_publish(exchange = '',
                                   routing_key = 'start_job_queue',
                                   routing_key = self.rpcQueue,
                                   properties = pika.BasicProperties(reply_to = self.callback_queue,
                                                                     correlation_id = self.corr_id,
                                                                    ),
@@ -31,8 +33,15 @@ class AMQPClient(object):
        return self.response
      

testClient = AMQPClient()
if len(sys.argv) == 2:
    script, queue = sys.argv
elif len(sys.argv) == 3:
    script, queue, jobid = sys.argv
else:
    sys.exit("FATAL: wrong number of input args.")
  
if queue == 'start_job_queue':
    testClient = AMQPClient(queue)
    transferRequest = { "transfer":
                         {
                            "@version": "2.1",
@@ -43,9 +52,18 @@ transferRequest = { "transfer":
                            }
                         }
                      }

    print("Sending transfer request:")
    print(json.dumps(transferRequest, indent = 3))
    response = testClient.call(transferRequest)
    print("Response:")
    print(json.dumps(response, indent = 3))
elif queue == 'poll_job_queue':
    testClient = AMQPClient(queue)
    pollRequest = { "jobID": jobid }
    print("Sending poll request:")
    print(json.dumps(pollRequest, indent = 3))
    response = testClient.call(pollRequest)
    print("Response:")
    print(json.dumps(response, indent = 3))
else:
    sys.exit("FATAL: invalid queue name.")
 No newline at end of file