From e7c8ba4535a0eabd3bf6c060d5198c0b0c7c8f53 Mon Sep 17 00:00:00 2001 From: Manali Latkar Date: Tue, 22 Oct 2013 18:06:30 +0530 Subject: [PATCH] service can be given as parameter to stacky/hosts to get specific results --- stacktach/stacky_server.py | 9 ++++----- tests/unit/test_stacky_server.py | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/stacktach/stacky_server.py b/stacktach/stacky_server.py index 9e63e9f..b09db34 100644 --- a/stacktach/stacky_server.py +++ b/stacktach/stacky_server.py @@ -90,12 +90,12 @@ def get_all_event_names(): events.extend(get_event_names(service)) return events -def get_host_names(): +def get_host_names(service): # TODO: We need to upgrade to Django 1.4 so we can get tenent id and # host and just do distinct on host name. # like: values('host', 'tenant_id').distinct('host') # This will be more meaningful. Host by itself isn't really. - return models.RawData.objects.values('host').distinct() + return _model_factory(service).values('host').distinct() def routing_key_type(key): @@ -164,12 +164,10 @@ def do_deployments(request): def do_events(request): service = str(request.GET.get('service', 'all')) - print service if service == 'all': events = get_all_event_names() else: events = get_event_names(service=service) - print events results = [["Event Name"]] for event in events: results.append([event['event']]) @@ -177,7 +175,8 @@ def do_events(request): def do_hosts(request): - hosts = get_host_names() + service = str(request.GET.get('service', 'nova')) + hosts = get_host_names(service) results = [["Host Name"]] for host in hosts: results.append([host['host']]) diff --git a/tests/unit/test_stacky_server.py b/tests/unit/test_stacky_server.py index 24e4f28..0549bd8 100644 --- a/tests/unit/test_stacky_server.py +++ b/tests/unit/test_stacky_server.py @@ -110,13 +110,24 @@ class StackyServerTestCase(StacktachBaseTestCase): self.mox.VerifyAll() - def test_get_host_names(self): + def test_get_host_names_for_nova(self): result = self.mox.CreateMockAnything() models.RawData.objects.values('host').AndReturn(result) result.distinct().AndReturn(result) self.mox.ReplayAll() - event_names = stacky_server.get_host_names() + event_names = stacky_server.get_host_names('nova') + self.assertEqual(event_names, result) + + self.mox.VerifyAll() + + def test_get_host_names_for_glance(self): + result = self.mox.CreateMockAnything() + models.GlanceRawData.objects.values('host').AndReturn(result) + result.distinct().AndReturn(result) + self.mox.ReplayAll() + + event_names = stacky_server.get_host_names('glance') self.assertEqual(event_names, result) self.mox.VerifyAll() @@ -280,11 +291,12 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_hosts(self): fake_request = self.mox.CreateMockAnything() + fake_request.GET = {'service': 'service'} host1 = {'host': 'www.demo.com'} host2 = {'host': 'www.example.com'} hosts = [host1, host2] self.mox.StubOutWithMock(stacky_server, 'get_host_names') - stacky_server.get_host_names().AndReturn(hosts) + stacky_server.get_host_names('service').AndReturn(hosts) self.mox.ReplayAll() resp = stacky_server.do_hosts(fake_request)