modyfying the behavior of stacky server events so that it gives events according to the service in params and all events if no service is provided

This commit is contained in:
Manali Latkar 2013-09-20 16:36:55 +05:30
parent da91a0d6aa
commit 74244cfeaa
2 changed files with 39 additions and 3 deletions

View File

@ -83,6 +83,13 @@ def get_event_names(service='nova'):
return _model_factory(service).values('event').distinct()
def get_all_event_names():
services = ['nova', 'glance', 'generic']
events = []
for service in services:
events.extend(get_event_names(service))
return events
def get_host_names():
# TODO: We need to upgrade to Django 1.4 so we can get tenent id and
# host and just do distinct on host name.
@ -156,7 +163,13 @@ def do_deployments(request):
def do_events(request):
events = get_event_names()
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']])

View File

@ -235,13 +235,14 @@ class StackyServerTestCase(StacktachBaseTestCase):
self.assertEqual(json_resp[2], [2, 'dep2'])
self.mox.VerifyAll()
def test_do_events(self):
def test_do_events_of_a_single_service(self):
fake_request = self.mox.CreateMockAnything()
fake_request.GET = {'service': 'nova'}
event1 = {'event': 'some.event.1'}
event2 = {'event': 'some.event.2'}
events = [event1, event2]
self.mox.StubOutWithMock(stacky_server, 'get_event_names')
stacky_server.get_event_names().AndReturn(events)
stacky_server.get_event_names(service='nova').AndReturn(events)
self.mox.ReplayAll()
resp = stacky_server.do_events(fake_request)
@ -254,6 +255,28 @@ class StackyServerTestCase(StacktachBaseTestCase):
self.assertEqual(json_resp[2], ['some.event.2'])
self.mox.VerifyAll()
def test_do_events_of_all_services(self):
fake_request = self.mox.CreateMockAnything()
fake_request.GET = {'service': 'all'}
event1 = {'event': 'some.event.1'}
event2 = {'event': 'some.event.2'}
events = [event1, event2]
self.mox.StubOutWithMock(stacky_server, 'get_event_names')
stacky_server.get_event_names('nova').AndReturn(events)
stacky_server.get_event_names('glance').AndReturn(events)
stacky_server.get_event_names('generic').AndReturn(events)
self.mox.ReplayAll()
resp = stacky_server.do_events(fake_request)
self.assertEqual(resp.status_code, 200)
json_resp = json.loads(resp.content)
self.assertEqual(len(json_resp), 7)
self.assertEqual(json_resp[0], ['Event Name'])
self.assertEqual(json_resp[1], ['some.event.1'])
self.assertEqual(json_resp[2], ['some.event.2'])
self.mox.VerifyAll()
def test_do_hosts(self):
fake_request = self.mox.CreateMockAnything()
host1 = {'host': 'www.demo.com'}