diff --git a/bin/heat b/bin/heat index f33a81f1c0..381f63e0d7 100755 --- a/bin/heat +++ b/bin/heat @@ -201,9 +201,7 @@ def stack_events_list(options, arguments): try: parameters['StackName'] = arguments.pop(0) except IndexError: - print "Please specify the stack name " - print "as the first argument" - return FAILURE + pass c = get_client(options) result = c.list_stack_events(**parameters) diff --git a/heat/api/v1/stacks.py b/heat/api/v1/stacks.py index af46670d24..af2023b4d4 100644 --- a/heat/api/v1/stacks.py +++ b/heat/api/v1/stacks.py @@ -175,9 +175,10 @@ class StackController(object): Returns the following information for all stacks: """ con = context.get_admin_context() + stack_name = req.params.get('StackName', None) stack_list = rpc.call(con, 'engine', {'method': 'list_events', - 'args': {'stack_name': req.params['StackName']}}) + 'args': {'stack_name': stack_name}}) res = {'DescribeStackEventsResult': {'StackEvents': [] } } summaries = res['DescribeStackEventsResult']['StackEvents'] diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 9ea416125e..d3f81d2504 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -123,8 +123,12 @@ class EngineManager(manager.Manager): return None def list_events(self, context, stack_name): - st = db_api.stack_get(None, stack_name) - events = db_api.event_get_all_by_stack(None, st.id) + if stack_name is not None: + st = db_api.stack_get(None, stack_name) + events = db_api.event_get_all_by_stack(None, st.id) + else: + events = db_api.event_get_all(None) + def parse_event(e): s = e.stack # TODO Missing LogicalResourceId, PhysicalResourceId, ResourceType,