コード例 #1
0
ファイル: broker.py プロジェクト: openscanner/flower_ex
    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)
コード例 #2
0
    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])
コード例 #3
0
 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)
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
 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)
コード例 #7
0
 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)
コード例 #8
0
 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)
コード例 #9
0
 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)
コード例 #10
0
 def test_init(self):
     b = Broker('redis://localhost:6379/0')
     self.assertFalse(isinstance(b, RabbitMQ))
     self.assertTrue(isinstance(b, Redis))
コード例 #11
0
 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)
コード例 #12
0
 def test_init(self):
     b = Broker('redis+socket:///path/to/socket')
     self.assertFalse(isinstance(b, RabbitMQ))
     self.assertTrue(isinstance(b, RedisSocket))
コード例 #13
0
 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))
コード例 #14
0
 def test_init_without_broker_use_ssl(self):
     with self.assertRaises(ValueError):
         Broker('rediss://localhost:6379/0')
コード例 #15
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))
コード例 #16
0
 def test_init(self):
     b = Broker('amqp://', '')
     self.assertTrue(isinstance(b, RabbitMQ))
     self.assertFalse(isinstance(b, Redis))
コード例 #17
0
 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)