Clearer event stats filtering

This commit is contained in:
Andrew Melton 2014-03-03 13:06:02 -05:00
parent 18c3309d7b
commit e21afc84a7
2 changed files with 23 additions and 7 deletions

View File

@ -478,13 +478,9 @@ def get_event_stats(request):
events = list(events)
if 'event' in request.GET:
event_filter = request.GET['event']
event_count = {'event': event_filter, 'event_count': 0}
for event in events:
if event['event'] == event_filter:
event_count['event_count'] = event['event_count']
break
events = [event_count, ]
event = request.GET['event']
default = {'event': event, 'event_count': 0}
events = [x for x in events if x['event'] == event] or [default, ]
return {'stats': events}
except (KeyError, TypeError):

View File

@ -1173,6 +1173,26 @@ class DBAPITestCase(StacktachBaseTestCase):
json.dumps({'stats': [events[0]]}))
self.mox.VerifyAll()
def test_get_verified_count_default(self):
fake_request = self.mox.CreateMockAnything()
fake_request.method = 'GET'
fake_request.GET = {'service': "nova",
'event': 'compute.instance.exists.verified'}
mock_query = self.mox.CreateMockAnything()
models.RawData.objects.values('event').AndReturn(mock_query)
events = [
{'event': 'compute.instance.create.start', 'event_count': 100},
{'event': 'compute.instance.exists', 'event_count': 100}
]
mock_query.annotate(event_count=mox.IsA(Count)).AndReturn(events)
self.mox.ReplayAll()
response = dbapi.get_event_stats(fake_request)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content,
json.dumps({'stats': [{'event': 'compute.instance.exists.verified', 'event_count': 0}]}))
self.mox.VerifyAll()
def test_get_verified_count_wrong_date_format_returns_400(self):
fake_request = self.mox.CreateMockAnything()
fake_request.method = 'GET'