From: Zane Bitter Date: Fri, 21 Dec 2012 16:25:25 +0000 (+0100) Subject: RPC API: Clean up list_events results X-Git-Tag: 2014.1~1042 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=8bad76c00e3a9a9c5d5fb8a8cd4b50b91f2e16aa;p=openstack-build%2Fheat-build.git RPC API: Clean up list_events results Just return a list, rather than wrapping it in an object. The client API processes can (and do) do whatever wrapping they need. Change-Id: Ia77facbc7577ec96d1fa0e6e2784f4e5cff68614 Signed-off-by: Zane Bitter --- diff --git a/heat/api/cfn/v1/stacks.py b/heat/api/cfn/v1/stacks.py index 7c42a897..2f72f5de 100644 --- a/heat/api/cfn/v1/stacks.py +++ b/heat/api/cfn/v1/stacks.py @@ -433,12 +433,10 @@ class StackController(object): stack_name = req.params.get('StackName', None) try: identity = stack_name and self._get_identity(con, stack_name) - event_res = self.engine_rpcapi.list_events(con, identity) + events = self.engine_rpcapi.list_events(con, identity) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) - events = 'Error' not in event_res and event_res['events'] or [] - result = [format_stack_event(e) for e in events] return api_utils.format_response('DescribeStackEvents', diff --git a/heat/api/openstack/v1/events.py b/heat/api/openstack/v1/events.py index 20c76581..d1881c39 100644 --- a/heat/api/openstack/v1/events.py +++ b/heat/api/openstack/v1/events.py @@ -73,18 +73,14 @@ class EventController(object): def _event_list(self, req, identity, filter_func=lambda e: True, detail=False): try: - result = self.engine.list_events(req.context, + events = self.engine.list_events(req.context, identity) except rpc_common.RemoteError as ex: return util.remote_error(ex) - if 'events' not in result: - raise exc.HTTPInternalServerError() - ev_list = result['events'] - keys = None if detail else summary_keys - return [format_event(req, e, keys) for e in ev_list if filter_func(e)] + return [format_event(req, e, keys) for e in events if filter_func(e)] @util.identified_stack def index(self, req, identity, resource_name=None): diff --git a/heat/engine/service.py b/heat/engine/service.py index 684e3800..db7178cb 100644 --- a/heat/engine/service.py +++ b/heat/engine/service.py @@ -358,9 +358,7 @@ class EngineService(service.Service): else: events = db_api.event_get_all_by_tenant(context) - output = [api.format_event(Event.load(context, e.id)) for e in events] - - return {'events': output} + return [api.format_event(Event.load(context, e.id)) for e in events] @request_context def describe_stack_resource(self, context, stack_identity, resource_name): diff --git a/heat/tests/test_api_cfn_v1.py b/heat/tests/test_api_cfn_v1.py index ea4ea2da..1910eea0 100644 --- a/heat/tests/test_api_cfn_v1.py +++ b/heat/tests/test_api_cfn_v1.py @@ -785,24 +785,23 @@ class StackControllerTest(unittest.TestCase): dummy_req = self._dummy_GET_request(params) # Stub out the RPC call to the engine with a pre-canned response - engine_resp = {u'events': - [{u'stack_name': u'wordpress', - u'event_time': u'2012-07-23T13:05:39Z', - u'stack_identity': {u'tenant': u't', - u'stack_name': u'wordpress', - u'stack_id': u'6', - u'path': u''}, - u'logical_resource_id': u'WikiDatabase', - u'resource_status_reason': u'state changed', - u'event_identity': - {u'tenant': u't', - u'stack_name': u'wordpress', - u'stack_id': u'6', - u'path': u'/resources/WikiDatabase/events/42'}, - u'resource_status': u'IN_PROGRESS', - u'physical_resource_id': None, - u'resource_properties': {u'UserData': u'blah'}, - u'resource_type': u'AWS::EC2::Instance'}]} + engine_resp = [{u'stack_name': u'wordpress', + u'event_time': u'2012-07-23T13:05:39Z', + u'stack_identity': {u'tenant': u't', + u'stack_name': u'wordpress', + u'stack_id': u'6', + u'path': u''}, + u'logical_resource_id': u'WikiDatabase', + u'resource_status_reason': u'state changed', + u'event_identity': + {u'tenant': u't', + u'stack_name': u'wordpress', + u'stack_id': u'6', + u'path': u'/resources/WikiDatabase/events/42'}, + u'resource_status': u'IN_PROGRESS', + u'physical_resource_id': None, + u'resource_properties': {u'UserData': u'blah'}, + u'resource_type': u'AWS::EC2::Instance'}] self.m.StubOutWithMock(rpc, 'call') rpc.call(dummy_req.context, self.topic, diff --git a/heat/tests/test_api_openstack_v1.py b/heat/tests/test_api_openstack_v1.py index dc0fde4c..2890c3ed 100644 --- a/heat/tests/test_api_openstack_v1.py +++ b/heat/tests/test_api_openstack_v1.py @@ -1096,7 +1096,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/resources/' + res_name + '/events') - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1121,7 +1121,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', @@ -1168,7 +1168,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/events') - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1181,7 +1181,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', @@ -1249,7 +1249,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/resources/' + res_name + '/events') - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1262,7 +1262,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', @@ -1294,7 +1294,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/resources/' + res_name + '/events/' + event_id) - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1320,7 +1320,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', @@ -1370,7 +1370,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/resources/' + res_name + '/events/' + event_id) - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1383,7 +1383,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', @@ -1413,7 +1413,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): req = self._get(stack_identity._tenant_path() + '/resources/' + res_name + '/events/' + event_id) - engine_resp = {u'events': [ + engine_resp = [ { u'stack_name': u'wordpress', u'event_time': u'2012-07-23T13:05:39Z', @@ -1426,7 +1426,7 @@ class EventControllerTest(ControllerTest, unittest.TestCase): u'resource_properties': {u'UserData': u'blah'}, u'resource_type': u'AWS::EC2::Instance', } - ]} + ] self.m.StubOutWithMock(rpc, 'call') rpc.call(req.context, self.topic, {'method': 'list_events', diff --git a/heat/tests/test_engine_service.py b/heat/tests/test_engine_service.py index 6583b1c7..cc92a5e5 100644 --- a/heat/tests/test_engine_service.py +++ b/heat/tests/test_engine_service.py @@ -422,10 +422,7 @@ class stackServiceTest(unittest.TestCase): self.assertEqual(None, db_api.stack_get_by_name(ctx2, self.stack_name)) def test_stack_event_list(self): - el = self.man.list_events(self.ctx, self.stack_identity) - - self.assertTrue('events' in el) - events = el['events'] + events = self.man.list_events(self.ctx, self.stack_identity) self.assertEqual(len(events), 2) for ev in events: