def test_no_exchange(self): print('test builtin (direct) exchange') address = Address('test.10') queue = Queue(address.queue) queue.durable = False queue.declare(self.url) self.producer_reader(address)
def test_no_exchange(self): print 'test builtin (direct) exchange' address = Address('test.10') queue = Queue(address.queue) queue.durable = False queue.declare(self.url) self.producer_reader(address)
def __init__(self, url): """ :param url: The broker URL. :type url: str """ queue = Queue(ReplyHandler.REPLY_QUEUE) queue.durable = True queue.declare(url) self.consumer = ReplyConsumer(queue, url=url, authenticator=Authenticator())
def __call__(self): """ Trigger pulled. Execute the request. """ if not self._pending: raise Exception('trigger already executed') self._pending = False # asynchronous if self._policy.reply: return self._send(reply=self._policy.reply) if self._policy.wait == Trigger.NOWAIT: return self._send() # synchronous queue = Queue() queue.durable = False queue.declare(self._policy.url) reply = queue.name if self._policy.exchange: exchange = Exchange(self._policy.exchange) exchange.bind(queue, self._policy.url) reply = '/'.join((self._policy.exchange, queue.name)) try: return self._send(reply=reply, queue=queue) finally: queue.purge(self._policy.url) queue.delete(self._policy.url)
def test_custom_direct_exchange(self): print('test custom (direct) exchange') address = Address('test_11.direct/test.11') exchange = Exchange(address.exchange, policy='direct') exchange.durable = False exchange.declare(self.url) queue = Queue(address.queue) queue.durable = False queue.declare(self.url) exchange.bind(queue, self.url) self.producer_reader(address)
def test_custom_topic_exchange(self): print 'test custom (topic) exchange' address = Address('test_12.topic/test.12') exchange = Exchange(address.exchange, policy='topic') exchange.durable = False exchange.declare(self.url) queue = Queue(address.queue) queue.durable = False queue.declare(self.url) exchange.bind(queue, self.url) self.producer_reader(address)
def test_custom_direct_exchange(self): print 'test custom (direct) exchange' address = Address('test_11.direct/test.11') exchange = Exchange(address.exchange, policy='direct') exchange.durable = False exchange.declare(self.url) queue = Queue(address.queue) queue.durable = False queue.declare(self.url) exchange.bind(queue, self.url) self.producer_reader(address)
def test_custom_topic_exchange(self): print('test custom (topic) exchange') address = Address('test_12.topic/test.12') exchange = Exchange(address.exchange, policy='topic') exchange.durable = False exchange.declare(self.url) queue = Queue(address.queue) queue.durable = False queue.declare(self.url) exchange.bind(queue, self.url) self.producer_reader(address)
def __enter__(self): """ Enter the context. 1. add the configured gofer connector. 2. declare the agent queue. :return: self :rtype: Context """ add_connector() queue = Queue(self.address, self.url) queue.declare() return self
def teardown(self): """ Teardown the broker model. """ if self.managed < 2: return try: url = self.plugin.url queue = Queue(self.queue) queue.purge(url) queue.delete(url) except NotFound: pass
def setup(self): """ Setup the broker model. """ if not self.managed: # not managed return url = self.plugin.url queue = Queue(self.queue) queue.auto_delete = self.expiration > 0 queue.expiration = self.expiration queue.declare(url) if self.exchange: exchange = Exchange(self.exchange) exchange.bind(queue, url)
def test_init(self): node = Queue() plugin = Mock(url='') consumer = RequestConsumer(node, plugin) self.assertEqual(node, consumer.node) self.assertEqual(plugin, consumer.plugin) self.assertEqual(consumer.scheduler, plugin.scheduler)
def __init__(self, consumer, **details): """ :param consumer: A consumer DB model object. :type consumer: dict :param details: A dictionary of information to be round-tripped. Primarily used to correlate asynchronous replies. :type details: dict """ self.route = 'pulp.agent.%s' % consumer['id'] self.secret = str(consumer['_id']) self.url = Services.get_url() self.details = details self.reply_queue = ReplyHandler.REPLY_QUEUE self.authenticator = Authenticator() self.authenticator.load() queue = Queue(self.route) queue.declare(self.url)
def delete_queue(url, name): """ Purge and delete the agent queue. :param url: The broker URL. :type url: str :param name: The queue name. :type name: str """ add_connector() queue = Queue(name, url) try: queue.purge() queue.delete() except NotFound: # queue may not exist pass
def test_crud(self): print 'test CRUD' queue = Queue('test.13') queue.durable = False queue.declare(self.url) exchange = Exchange('test_crud_13.direct') exchange.declare(self.url) exchange.bind(queue, self.url) queue.delete(self.url) exchange.delete(self.url)
def __init__(self, url, transport): """ :param url: The broker URL. :type url: str :param transport: The gofer transport. :type transport: str """ queue = Queue(Services.REPLY_QUEUE, transport=transport) self.consumer = ReplyConsumer(queue, url=url, transport=transport, authenticator=Authenticator())
def test_send_not_addressed(self, send): node = Queue() plugin = Mock(url='') request = Document(replyto=None) status = 'rejected' consumer = RequestConsumer(node, plugin) # Test consumer.send(request, status) # Validation self.assertFalse(send.called)
def test_no_route(self): node = Queue() plugin = Mock(url='') consumer = RequestConsumer(node, plugin) consumer.abort = Mock() # Test thread = consumer.no_route() thread.join() # Validation consumer.abort.assert_called_once_with() plugin.reload.assert_called_once_with()
def test_dispatch(self): node = Queue() plugin = Mock(url='') request = Document() consumer = RequestConsumer(node, plugin) consumer.send = Mock() # Test consumer.dispatch(request) # Validation consumer.send.assert_called_once_with(request, 'accepted') plugin.scheduler.add.assert_called_once_with(request)
def test_send(self, ts, _open, _close, send): send.side_effect = ValueError node = Queue() plugin = Mock(url='') request = Document(sn=1, replyto='elmer', data=123) status = 'rejected' details = dict(a=1) consumer = RequestConsumer(node, plugin) # Test consumer.send(request, status, **details) # Validation _open.assert_called_once_with() _close.assert_called_once_with()
def test_crud(self): print "test CRUD" queue = Queue("test.13") queue.durable = False queue.declare(self.url) exchange = Exchange("test_crud_13.direct") exchange.declare(self.url) exchange.bind(queue, self.url) queue.delete(self.url) exchange.delete(self.url)
def test_crud(self): print('test CRUD') queue = Queue('test.13') queue.durable = False queue.declare(self.url) exchange = Exchange('test_crud_13.direct') exchange.declare(self.url) exchange.bind(queue, self.url) queue.delete(self.url) exchange.delete(self.url)
def producer_reader(self, address): print('using producer/reader') with Producer(url=self.url) as p: for x in range(0, N): print('#{} - sent: {}'.format(x, address)) p.send(str(address)) received = 0 queue = Queue(address.queue) with Reader(queue, url=self.url) as r: while received < N: m, d = r.next() if m is None: break m.ack() print('#{} - received: {}'.format(received, d)) received += 1 print('end')
def producer_reader(self, address): print 'using producer/reader' with Producer(url=self.url) as p: for x in range(0, N): print '#%d - sent: %s' % (x, address) p.send(str(address)) received = 0 queue = Queue(address.queue) with Reader(queue, url=self.url) as r: while received < N: m, d = r.next() if m is None: break m.ack() print '#%d - received: %s' % (received, d) received += 1 print 'end'
def producer_reader(self, address): print 'using producer/reader' with self.adapter.Sender(url=self.url) as p: for x in range(0, N): print '#%d - sent: %s' % (x, address) p.send(str(address), 'hello') received = 0 queue = Queue(address.queue) with self.adapter.Reader(queue, url=self.url) as r: while received < N: m = r.get(1) if m is None: break m.ack() print '#%d - received: %s' % (received, m) received += 1 assert received == N print 'end'
def test_rejected(self): node = Queue() plugin = Mock(url='') code = '401' description = 'failed' details = dict(msg='failed') document = Document(field='value') consumer = RequestConsumer(node, plugin) consumer.send = Mock() # Test consumer.rejected(code, description, document, details) # Validation consumer.send.assert_called_once_with( document, 'rejected', **{ 'code': code, 'description': description, 'details': details, })
def test_send(self, ts, _open, _close, send): node = Queue() plugin = Mock(url='') request = Document(sn=1, replyto='elmer', data=123) status = 'rejected' details = dict(a=1) consumer = RequestConsumer(node, plugin) # Test consumer.send(request, status, **details) # Validation _open.assert_called_once_with() send.assert_called_once_with(request.replyto, sn=request.sn, data=request.data, status=status, timestamp=ts.return_value, **details) _close.assert_called_once_with()
def __init__(self, url): queue = Queue(address.queue) Consumer.__init__(self, queue, url=url) self.received = 0
class Listener: def succeeded(self, reply): print reply def failed(self, reply): print reply def accepted(self, reply): print reply def started(self, reply): print reply def progress(self, reply): print reply if __name__ == '__main__': tag = 'XYZ' print 'starting, uuid=%s' % tag queue = Queue(tag, url='tcp://localhost:5672') c = ReplyConsumer(queue) #c.start(Listener()) c.start(onReply) while True: #print 'ReplyListener: sleeping...' sleep(10) c.stop()
if options.auth: authenticator = TestAuthenticator() else: authenticator = None Agent.url = url Agent.address = address Agent.base_options['authenticator'] = authenticator # test_plugin_shutdown(1) # test_zombie() # test_memory() test_forked() queue = Queue(address.split('/')[-1].upper()) queue.durable = False queue.declare(url) reply_consumer = ReplyConsumer(queue, url=url, authenticator=authenticator) reply_consumer.start(on_reply) test_cancel() demo_progress() # demo_authentication(yp) smoke_test() demo_constructors() test_triggers() demo_getitem() demo(Agent())
for user in options.user: u, p = user.split(':') yp[u] = p if options.auth: authenticator = TestAuthenticator() else: authenticator = None Agent.url = url Agent.address = address Agent.base_options['authenticator'] = authenticator # test_memory() queue = Queue(address.split('/')[-1].upper()) queue.durable = False queue.declare(url) reply_consumer = ReplyConsumer(queue, url=url, authenticator=authenticator) reply_consumer.start(on_reply) # demo_progress(1) # test_performance() demo_authentication(yp) smoke_test() demo_constructors() test_triggers() demo_getitem() n_threads = int(options.threads)
def __init__(self, url): queue = Queue(self.CTAG) self.consumer = ReplyConsumer(queue, url=url)