Handle errors when listing events

Signed-off-by: Zane Bitter <zbitter@redhat.com>
This commit is contained in:
Zane Bitter 2012-04-13 17:58:23 +02:00
parent 0525333416
commit 4b04ffd16a
3 changed files with 8 additions and 18 deletions

View File

@ -176,16 +176,12 @@ class StackController(object):
"""
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}})
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 []
res = {'DescribeStackEventsResult': {'StackEvents': [] } }
summaries = res['DescribeStackEventsResult']['StackEvents']
for s in stack_list['events']:
summaries.append(s)
return res
return {'DescribeStackEventsResult': {'StackEvents': events}}
def create_resource(options):
"""Stacks resource factory method."""

View File

@ -149,26 +149,17 @@ def event_get(context, event_id):
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):

View File

@ -121,6 +121,9 @@ class EngineManager(manager.Manager):
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)