From fb23391277120e1ecd76e7b94625256c097a29db Mon Sep 17 00:00:00 2001 From: Ian Main Date: Fri, 11 May 2012 11:14:08 -0700 Subject: [PATCH] Move list_events into the class. I think I went too far last time, this should at least be a method of the class. Signed-off-by: Ian Main --- heat/engine/manager.py | 30 ++++++++++++++++-------------- heat/tests/test_stacks.py | 3 ++- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index dbc3bec1..b1dc8897 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -33,19 +33,6 @@ from heat.db import api as db_api logger = logging.getLogger('heat.engine.manager') -def parse_event(event): - s = event.stack - return {'EventId': event.id, - 'StackId': event.stack_id, - 'StackName': s.name, - 'Timestamp': str(event.created_at), - 'LogicalResourceId': event.logical_resource_id, - 'PhysicalResourceId': event.physical_resource_id, - 'ResourceType': event.resource_type, - 'ResourceStatusReason': event.resource_status_reason, - 'ResourceProperties': event.resource_properties, - 'ResourceStatus': event.name} - class EngineManager(manager.Manager): """ @@ -220,6 +207,21 @@ class EngineManager(manager.Manager): ps.delete() return None + # Helper for list_events. It's here so we can use it in tests. + def parse_event(self, event): + s = event.stack + return {'EventId': event.id, + 'StackId': event.stack_id, + 'StackName': s.name, + 'Timestamp': str(event.created_at), + 'LogicalResourceId': event.logical_resource_id, + 'PhysicalResourceId': event.physical_resource_id, + 'ResourceType': event.resource_type, + 'ResourceStatusReason': event.resource_status_reason, + 'ResourceProperties': event.resource_properties, + 'ResourceStatus': event.name} + + def list_events(self, context, stack_name): """ The list_events method lists all events associated with a given stack. @@ -235,7 +237,7 @@ class EngineManager(manager.Manager): else: events = db_api.event_get_all(None) - return {'events': [parse_event(e) for e in events]} + return {'events': [self.parse_event(e) for e in events]} def event_create(self, context, event): try: diff --git a/heat/tests/test_stacks.py b/heat/tests/test_stacks.py index f8bb626b..2d2750db 100644 --- a/heat/tests/test_stacks.py +++ b/heat/tests/test_stacks.py @@ -107,9 +107,10 @@ class stacksTest(unittest.TestCase): assert(stack.resources['WebServer'] != None) assert(stack.resources['WebServer'].instance_id > 0) + m = manager.EngineManager() events = db_api.event_get_all_by_stack(None, stack.id) for ev in events: - result = manager.parse_event(ev) + result = m.parse_event(ev) assert(result['EventId'] > 0) assert(result['StackName'] == "test_event_list_stack") # This is one of CREATE_COMPLETE or CREATE_IN_PROGRESS, -- 2.45.2