service can be given as parameter to stacky/hosts to get specific results

This commit is contained in:
Manali Latkar 2013-10-22 18:06:30 +05:30
parent 03ee2cce65
commit e7c8ba4535
2 changed files with 19 additions and 8 deletions

View File

@ -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']])

View File

@ -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)