Clearer event stats filtering
This commit is contained in:
parent
18c3309d7b
commit
e21afc84a7
@ -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):
|
||||
|
@ -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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user