def _send(self, template, wait_results): msg_id = template.get('ID', uuid.uuid4().hex) if wait_results: event = eventlet.event.Event() listener = self._environment.agentListener listener.subscribe(msg_id, event) listener.start() msg = messaging.Message() msg.body = template msg.id = msg_id with common.create_rmq_client() as client: client.declare(self._queue, enable_ha=True, ttl=86400000) client.send(message=msg, key=self._queue) if wait_results: result = event.wait() if not result: return None if result.get('FormatVersion', '1.0.0').startswith('1.'): return self._process_v1_result(result) else: return self._process_v2_result(result) else: return None
def _send(self, template, wait_results): msg_id = template.get('ID', uuid.uuid4().hex) if wait_results: event = eventlet.event.Event() listener = self._environment.agentListener listener.subscribe(msg_id, event) listener.start() msg = messaging.Message() msg.body = template msg.id = msg_id with common.create_rmq_client() as client: client.declare(self._queue, enable_ha=True, ttl=86400000) client.send(message=msg, key=self._queue) if wait_results: result = event.wait() if not result: return None if result.get('FormatVersion', '1.0.0').startswith('1.'): return self._process_v1_result(result) else: return self._process_v2_result(result) else: return None
def _receive(self): with common.create_rmq_client() as client: client.declare(self._results_queue, enable_ha=True, ttl=86400000) with client.open(self._results_queue) as subscription: while True: msg = subscription.get_message() if not msg: continue msg.ack() msg_id = msg.body.get('SourceID', msg.id) if msg_id in self._subscriptions: event = self._subscriptions.pop(msg_id) event.send(msg.body)