From 47118814f4a2e52aa9965d6ac12c93a80c854572 Mon Sep 17 00:00:00 2001 From: Manali Latkar Date: Fri, 23 Aug 2013 15:38:00 +0530 Subject: [PATCH] now service is sent in parameters for stacky urls --- stacktach/stacky_server.py | 16 ++++++++++++---- stacktach/urls.py | 9 +++------ tests/unit/test_stacky_server.py | 28 +++++++++++++++++----------- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/stacktach/stacky_server.py b/stacktach/stacky_server.py index c5b0552..f43b087 100644 --- a/stacktach/stacky_server.py +++ b/stacktach/stacky_server.py @@ -105,8 +105,9 @@ def do_hosts(request): return rsp(json.dumps(results)) -def do_uuid(request, service='nova'): +def do_uuid(request): uuid = str(request.GET['uuid']) + service = str(request.GET.get('service', 'nova')) if not utils.is_uuid_like(uuid): msg = "%s is not uuid-like" % uuid return error_response(400, 'Bad Request', msg) @@ -256,6 +257,7 @@ def append_generic_raw_attributes(event, results): results.append(["Req ID", event.request_id]) return results + def _append_raw_attributes(event, results, service): if service == 'nova': return append_nova_raw_attributes(event, results) @@ -264,8 +266,11 @@ def _append_raw_attributes(event, results, service): if service == 'generic': return append_generic_raw_attributes(event, results) -def do_show(request, event_id, service='nova'): + +def do_show(request, event_id): + service = str(request.GET.get('service', 'nova')) event_id = int(event_id) + results = [] model = _model_factory(service) try: @@ -289,7 +294,9 @@ def _model_factory(service): return models.GenericRawData.objects -def do_watch(request, deployment_id, service='nova'): +def do_watch(request, deployment_id): + service = str(request.GET.get('service', 'nova')) + model = _model_factory(service) deployment_id = int(deployment_id) since = request.GET.get('since') @@ -485,8 +492,9 @@ def do_jsonreport(request, report_id): return rsp(report.json) -def search(request, service): +def search(request): DEFAULT = 1000 + service = str(request.GET.get('service', 'nova')) field = request.GET.get('field') value = request.GET.get('value') limit = request.GET.get('limit', DEFAULT) diff --git a/stacktach/urls.py b/stacktach/urls.py index 7057836..7550fad 100644 --- a/stacktach/urls.py +++ b/stacktach/urls.py @@ -3,11 +3,10 @@ from django.conf.urls import patterns, url urlpatterns = patterns('', url(r'^$', 'stacktach.views.welcome', name='welcome'), - url(r'stacky/deployments/$', 'stacktach.stacky_server.do_deployments'), url(r'stacky/events/$', 'stacktach.stacky_server.do_events'), url(r'stacky/hosts/$', 'stacktach.stacky_server.do_hosts'), - url(r'stacky/uuid/(?P\w+)/$', 'stacktach.stacky_server.do_uuid'), + url(r'stacky/uuid/$', 'stacktach.stacky_server.do_uuid'), url(r'stacky/timings/$', 'stacktach.stacky_server.do_timings'), url(r'stacky/timings/uuid/$', 'stacktach.stacky_server.do_timings_uuid'), url(r'stacky/summary/$', 'stacktach.stacky_server.do_summary'), @@ -17,11 +16,9 @@ urlpatterns = patterns('', 'stacktach.stacky_server.do_jsonreport'), url(r'stacky/show/(?P\d+)/$', 'stacktach.stacky_server.do_show'), - url(r'stacky/show/(?P\w+)/(?P\d+)/$', - 'stacktach.stacky_server.do_show'), - url(r'stacky/watch/(?P\d+)/(?P\w+)/$', + url(r'stacky/watch/(?P\d+)/$', 'stacktach.stacky_server.do_watch'), - url(r'stacky/search/(?P\w+)/$', 'stacktach.stacky_server.search'), + url(r'stacky/search/$', 'stacktach.stacky_server.search'), url(r'stacky/kpi/$', 'stacktach.stacky_server.do_kpi'), url(r'stacky/kpi/(?P\w+)/$', 'stacktach.stacky_server.do_kpi'), url(r'stacky/usage/launches/$', diff --git a/tests/unit/test_stacky_server.py b/tests/unit/test_stacky_server.py index f07bff3..2e6c3f7 100644 --- a/tests/unit/test_stacky_server.py +++ b/tests/unit/test_stacky_server.py @@ -297,7 +297,7 @@ class StackyServerTestCase(StacktachBaseTestCase): "2013-07-17 10:16:10.717219", "deployment", "test.start", "example.com", "state"]] fake_request = self.mox.CreateMockAnything() - fake_request.GET = {'uuid': INSTANCE_ID_1} + fake_request.GET = {'uuid': INSTANCE_ID_1, 'service': 'glance'} result = self.mox.CreateMockAnything() models.GlanceRawData.objects.select_related().AndReturn(result) result.filter(uuid=INSTANCE_ID_1).AndReturn(result) @@ -307,7 +307,7 @@ class StackyServerTestCase(StacktachBaseTestCase): raw.search_results([], mox.IgnoreArg(), ' ').AndReturn(search_result) self.mox.ReplayAll() - resp = stacky_server.do_uuid(fake_request,'glance') + resp = stacky_server.do_uuid(fake_request) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) @@ -591,6 +591,7 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_show(self): fake_request = self.mox.CreateMockAnything() + fake_request.GET = {} raw = self._create_raw() models.RawData.objects.get(id=1).AndReturn(raw) self.mox.ReplayAll() @@ -604,11 +605,12 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_show_for_glance_rawdata(self): fake_request = self.mox.CreateMockAnything() + fake_request.GET = {'service':'glance'} raw = self._create_raw() models.GlanceRawData.objects.get(id=1).AndReturn(raw) self.mox.ReplayAll() - resp = stacky_server.do_show(fake_request, 1, 'glance') + resp = stacky_server.do_show(fake_request, 1) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) @@ -617,11 +619,12 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_show_for_generic_rawdata(self): fake_request = self.mox.CreateMockAnything() + fake_request.GET = {'service':'generic'} raw = self._create_raw() models.GenericRawData.objects.get(id=1).AndReturn(raw) self.mox.ReplayAll() - resp = stacky_server.do_show(fake_request, 1, 'generic') + resp = stacky_server.do_show(fake_request, 1) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) @@ -630,6 +633,8 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_show_should_return_empty_result_on_object_not_found_exception(self): fake_request = self.mox.CreateMockAnything() + fake_request.GET = {} + raw = self._create_raw() models.RawData.objects.get(id=1).AndReturn(raw) self.mox.ReplayAll() @@ -643,7 +648,7 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_watch_for_glance(self): fake_request = self.mox.CreateMockAnything() - fake_request.GET = {} + fake_request.GET = {'service': 'glance'} self.mox.StubOutWithMock(stacky_server, 'get_deployments') deployment1 = self.mox.CreateMockAnything() deployment1.id = 1 @@ -660,7 +665,7 @@ class StackyServerTestCase(StacktachBaseTestCase): results.__iter__().AndReturn([self._create_raw()].__iter__()) self.mox.ReplayAll() - resp = stacky_server.do_watch(fake_request, 0, 'glance') + resp = stacky_server.do_watch(fake_request, 0) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) self.assertEqual(len(json_resp), 3) @@ -750,7 +755,7 @@ class StackyServerTestCase(StacktachBaseTestCase): def test_do_watch_with_event_name(self): fake_request = self.mox.CreateMockAnything() - fake_request.GET = {'event_name': 'test.start'} + fake_request.GET = {'event_name': 'test.start','service': 'nova'} self.mox.StubOutWithMock(stacky_server, 'get_deployments') deployment1 = self.mox.CreateMockAnything() deployment1.id = 1 @@ -768,7 +773,7 @@ class StackyServerTestCase(StacktachBaseTestCase): results.__iter__().AndReturn([self._create_raw()].__iter__()) self.mox.ReplayAll() - resp = stacky_server.do_watch(fake_request, 0, 'nova') + resp = stacky_server.do_watch(fake_request, 0) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) self.assertEqual(len(json_resp), 3) @@ -1145,7 +1150,7 @@ class StackyServerTestCase(StacktachBaseTestCase): raw.search_results([], mox.IgnoreArg(), ' ').AndReturn(search_result) self.mox.ReplayAll() - resp = stacky_server.search(fake_request, 'nova') + resp = stacky_server.search(fake_request) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content) @@ -1164,7 +1169,8 @@ class StackyServerTestCase(StacktachBaseTestCase): "2013-07-17 10:16:10.717219", "deployment", "test.start", "example.com", "active", None, None]] fake_request = self.mox.CreateMockAnything() - fake_request.GET = {'field': 'tenant', 'value': 'tenant', 'limit': '2'} + fake_request.GET = {'field': 'tenant', 'value': 'tenant', 'limit': '2', + 'service': 'nova'} raw1 = self._create_raw() raw2 = self._create_raw() raw3 = self._create_raw() @@ -1176,7 +1182,7 @@ class StackyServerTestCase(StacktachBaseTestCase): raw2.search_results(search_result, mox.IgnoreArg(),' ').AndReturn(search_result_2) self.mox.ReplayAll() - resp = stacky_server.search(fake_request, 'nova') + resp = stacky_server.search(fake_request) self.assertEqual(resp.status_code, 200) json_resp = json.loads(resp.content)