"""
con = context.get_admin_context()
stack_name = req.params.get('StackName', None)
- stack_list = rpc.call(con, 'engine',
- {'method': 'list_events',
- 'args': {'stack_name': stack_name}})
-
- res = {'DescribeStackEventsResult': {'StackEvents': [] } }
- summaries = res['DescribeStackEventsResult']['StackEvents']
- for s in stack_list['events']:
- summaries.append(s)
+ event_res = rpc.call(con, 'engine',
+ {'method': 'list_events',
+ 'args': {'stack_name': stack_name}})
+ events = 'Error' not in event_res and event_res['events'] or []
- return res
+ return {'DescribeStackEventsResult': {'StackEvents': events}}
def create_resource(options):
"""Stacks resource factory method."""
result = model_query(context, models.Event).\
filter_by(id=event_id).first()
- if not result:
- raise Exception("event with id %s not found" % event_id)
-
return result
def event_get_all(context):
results = model_query(context, models.Event).all()
- if not results:
- raise Exception('no events were found')
-
return results
def event_get_all_by_stack(context, stack_id):
results = model_query(context, models.Event).\
filter_by(stack_id=stack_id).all()
- if not results:
- raise Exception("no events for stack_id %s were found" % stack_id)
-
return results
def event_create(context, values):
def list_events(self, context, stack_name):
if stack_name is not None:
st = db_api.stack_get(None, stack_name)
+ if not st:
+ return {'Error': 'No stack by that name'}
+
events = db_api.event_get_all_by_stack(None, st.id)
else:
events = db_api.event_get_all(None)