def __init__(self): self.config = JSONObject(file(os.path.join(os.path.dirname(__file__), "..", "config.json"), "rb")) self.host = self.config.rabbitmq.host self.port = self.config.rabbitmq.port RabbitMQ.establishConnection(self.host, self.port) self.messageBusReceiveQueue = QueueThread(handler=self.receiveEventHandler) self.exchange = RabbitMQ.exchange_annotated_event
def run(self): RabbitMQ.declareExchange(self.rabbitmqchannel, self.exchange, _type="topic") RabbitMQ.declareExchange(self.rabbitmqchannel, RabbitMQ.exchange_event, _type="topic") queue = self.rabbitmqchannel.queue_declare() queue_name = queue.method.queue RabbitMQ.channel.queue_bind(exchange=RabbitMQ.exchange_event, queue=queue_name, routing_key="#") self.runthread = threading.Thread(target=self._run) self.runthread.start()
def __init__(self, messageBusQueue=None): from virtualisation.resourcemanagement.resourcemanagement import ResourceManagement self.rm = ResourceManagement self.rabbitmqconnection, self.rabbitmqchannel = RabbitMQ.establishConnection(str(ResourceManagement.config.rabbitmq.host), ResourceManagement.config.rabbitmq.port) self.messageBusReceiveQueue = QueueThread(handler=self.receiveEventHandler) self.messageBusSendQueue = messageBusQueue self.eventDescriptions = {} self.splitters = None self.annotator = GenericAnnotation() self.exchange = RabbitMQ.exchange_event self.consumer_tag = None self.runthread = None
def start(self): print "start listening on", self.host, "with port", self.port # print "waiting for", self.routing_key, "on exchange", self.exchange if RabbitMQ.establishConnection(self.host, self.port): print ("Connection established") else: print ("Failed to connect, exiting") return if hasattr(RabbitMQ, 'channel'): queue = RabbitMQ.channel.queue_declare() queue_name = queue.method.queue for exchange_key in self.exchange_key_list: RabbitMQ.channel.queue_bind(exchange=exchange_key[0], queue=queue_name, routing_key=exchange_key[1]) RabbitMQ.channel.basic_consume(self.onMessage, no_ack=True) print "start conssuming ..." RabbitMQ.channel.start_consuming()
def start_messagebus(self, args): L.i("Connecting to the message bus") self.messageBusQueue = QueueThread(handler=self.sendMessageHandler) try: # prepare RabbitMQ configuration rmq_host = str(self.config.rabbitmq.host) rmq_port = self.config.rabbitmq.port rmq_username = self.config.rabbitmq.username if "username" in self.config.rabbitmq else None rmq_password = self.config.rabbitmq.username if "password" in self.config.rabbitmq else None if rmq_username: if rmq_password: RabbitMQ.establishConnection(rmq_host, rmq_port, rmq_username, rmq_password) else: RabbitMQ.establishConnection(rmq_host, rmq_port, rmq_username) else: RabbitMQ.establishConnection(rmq_host, rmq_port) L.i("Connected to the message bus") self.messageBusQueue.start() except MessageBusConnectionError: self.args.messagebus = False args.messagebus = False L.w("Could not connect to MessageBus server. Disabling MessageBus feature.")
def sendMessageHandler(self, item): message, exchange, key = item L.d2(message) RabbitMQ.sendMessage(message, exchange, key) del message
def sendEvent(self): e = self.makeRandomEvent() message = e.dumps() RabbitMQ.sendMessage(message, RabbitMQ.exchange_event, e.ceType) print "sent", message
def sendAnnotatedEventHandler(self, annotatedevent): key = self.getEventDescription().messagebus.routingKey message = annotatedevent.serialize(format='n3') RabbitMQ.sendMessage(message, self.exchange, key)