def test_get_all(self): channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set()) channel1 = yield self.create_channel(self.service, self.redis) channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set([channel1.id])) channel2 = yield self.create_channel(self.service, self.redis) channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set([channel1.id, channel2.id]))
def test_get_all_channels(self): channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set()) channel1 = yield self.create_channel( self.service, self.redis, TelnetServerTransport) channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set([channel1.id])) channel2 = yield self.create_channel( self.service, self.redis, TelnetServerTransport) channels = yield Channel.get_all(self.redis) self.assertEqual(channels, set([channel1.id, channel2.id]))
def health_status(self, request): if self.config.rabbitmq_management_interface: def get_queues(channel_ids): gets = [] for channel_id in channel_ids: for sub in ['inbound', 'outbound', 'event']: queue_name = "%s.%s" % (channel_id, sub) get = self.rabbitmq_management_client.get_queue( self.amqp_config['vhost'], queue_name) gets.append(get) return gets def return_queue_results(results): queues = [] stuck = False for result in results: queue = result[1] if ('messages' in queue): details = { 'name': queue['name'], 'stuck': False, 'messages': queue.get('messages'), 'rate': queue['messages_details']['rate'] } if (details['messages'] > 0 and details['rate'] == 0): stuck = True details['stuck'] = True queues.append(details) status = 'queues ok' code = http.OK if stuck: status = "queues stuck" code = http.INTERNAL_SERVER_ERROR return response(request, status, queues, code=code) d = Channel.get_all(self.redis) d.addCallback(get_queues) d.addCallback(defer.DeferredList) d.addCallback(return_queue_results) return d else: return response(request, 'health ok', {})
def get_channel_list(self, request): '''List all channels''' ids = yield Channel.get_all(self.redis) returnValue(response(request, 'channels listed', sorted(ids)))