def get(self): app = self.application broker_options = self.capp.conf.BROKER_TRANSPORT_OPTIONS http_api = None if app.transport == 'amqp' and app.options.broker_api: http_api = app.options.broker_api try: broker = Broker(app.capp.connection().as_uri(include_password=True), http_api=http_api, broker_options=broker_options) except NotImplementedError: raise web.HTTPError( 404, "'%s' broker is not supported" % app.transport) queue_names = ControlHandler.get_active_queue_names() if not queue_names: queue_names = set([self.capp.conf.CELERY_DEFAULT_QUEUE]) queues = yield broker.queues(sorted(queue_names)) response = dict() response['broker_url'] = app.capp.connection().as_uri() response['queues'] = queues self.write(response)
def test_redis_client_args(self): b = Broker('rediss://:pass@host:4444/5', broker_use_ssl=self.BROKER_USE_SSL_OPTIONS) self.assertEqual('host', b.host) self.assertEqual(4444, b.port) self.assertEqual(5, b.vhost) self.assertEqual('pass', b.password) redis_client_args = b._get_redis_client_args() for ssl_key, ssl_val in self.BROKER_USE_SSL_OPTIONS.items(): self.assertIn(ssl_key, redis_client_args) self.assertEqual(ssl_val, redis_client_args[ssl_key])
def test_url_defaults(self): b = Broker('redis://') self.assertEqual('localhost', b.host) self.assertEqual(6379, b.port) self.assertEqual(0, b.vhost) self.assertIsNone(b.username) self.assertIsNone(b.password)
def test_url_with_password(self): options = {'master_name': 'my_redis_master'} b = Broker('sentinel://:pass@host:4444/5', broker_options=options) self.assertEqual('host', b.host) self.assertEqual(4444, b.port) self.assertEqual(5, b.vhost) self.assertEqual('pass', b.password)
def test_custom_sep(self): custom_sep = '.' cases = [(RedisBase.DEFAULT_SEP, {}), (custom_sep, { 'sep': custom_sep })] for expected, options in cases: b = Broker('redis://localhost:6379/0', broker_options=options) self.assertEqual(expected, b.sep)
def test_url_defaults(self): options = {'master_name': 'my_redis_master'} b = Broker('sentinel://', broker_options=options) self.assertEqual('localhost', b.host) self.assertEqual(26379, b.port) self.assertEqual(0, b.vhost) self.assertIsNone(b.username) self.assertIsNone(b.password)
def test_priority_steps(self): custom_steps = list(range(10)) cases = [(RedisBase.DEFAULT_PRIORITY_STEPS, {}), (custom_steps, { 'priority_steps': custom_steps })] for expected, options in cases: b = Broker('redis://localhost:6379/0', broker_options=options) self.assertEqual(expected, b.priority_steps)
def test_url_with_password(self): b = Broker('redis://:pass@host:4444/5') self.assertEqual('host', b.host) self.assertEqual(4444, b.port) self.assertEqual(5, b.vhost) self.assertEqual('pass', b.password)
def test_url(self): b = Broker('redis://foo:7777/9') self.assertEqual('foo', b.host) self.assertEqual(7777, b.port) self.assertEqual(9, b.vhost)
def test_init(self): b = Broker('redis://localhost:6379/0') self.assertFalse(isinstance(b, RabbitMQ)) self.assertTrue(isinstance(b, Redis))
def test_url(self): b = Broker('redis+socket:///path/to/socket') self.assertEqual(None, b.host) self.assertEqual(None, b.port) self.assertEqual('path/to/socket', b.vhost)
def test_init(self): b = Broker('redis+socket:///path/to/socket') self.assertFalse(isinstance(b, RabbitMQ)) self.assertTrue(isinstance(b, RedisSocket))
def test_init(self): options = {'master_name': 'my_redis_master'} b = Broker('sentinel://localhost:26379/', broker_options=options) self.assertFalse(isinstance(b, RabbitMQ)) self.assertTrue(isinstance(b, RedisSentinel))
def test_init_without_broker_use_ssl(self): with self.assertRaises(ValueError): Broker('rediss://localhost:6379/0')
def test_init_with_broker_use_ssl(self): b = Broker('rediss://localhost:6379/0', broker_use_ssl=self.BROKER_USE_SSL_OPTIONS) self.assertFalse(isinstance(b, RabbitMQ)) self.assertTrue(isinstance(b, Redis))
def test_init(self): b = Broker('amqp://', '') self.assertTrue(isinstance(b, RabbitMQ)) self.assertFalse(isinstance(b, Redis))
def test_url(self): options = {'master_name': 'my_redis_master'} b = Broker('sentinel://foo:7777/9', broker_options=options) self.assertEqual('foo', b.host) self.assertEqual(7777, b.port) self.assertEqual(9, b.vhost)