From 3b7e0ae4c615a203ed40a99b8e74f8bd18bdf2b9 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Mon, 9 Jul 2012 14:58:08 +0100 Subject: [PATCH] heat engine: raise appropriate error on bad stack name Raise an AttributeError when called with a bad stack name, this then maps to the appropriate HeatInvalidParameterValueError Change-Id: Ic11142e95166ade380c2ad8741ed7063684214fb Signed-off-by: Steven Hardy --- heat/engine/manager.py | 9 ++++++--- heat/tests/test_stacks.py | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 81b630e7..d4e93123 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -90,7 +90,10 @@ class EngineManager(manager.Manager): if stack_name is not None: s = db_api.stack_get_by_name(context, stack_name) - stacks = [s] if s is not None else [] + if s: + stacks = [s] + else: + raise AttributeError('Unknown stack name') else: stacks = db_api.stack_get_by_user(context) or [] @@ -191,7 +194,7 @@ class EngineManager(manager.Manager): st = db_api.stack_get_by_name(context, stack_name) if not st: - return {'Error': 'No stack by that name'} + raise AttributeError('Unknown stack name') logger.info('deleting stack %s' % stack_name) @@ -212,7 +215,7 @@ class EngineManager(manager.Manager): if stack_name is not None: st = db_api.stack_get_by_name(context, stack_name) if not st: - return {'Error': 'No stack by that name'} + raise AttributeError('Unknown stack name') events = db_api.event_get_all_by_stack(context, st.id) else: diff --git a/heat/tests/test_stacks.py b/heat/tests/test_stacks.py index 844bbd8b..1d5e1f6c 100644 --- a/heat/tests/test_stacks.py +++ b/heat/tests/test_stacks.py @@ -227,9 +227,10 @@ class stacksTest(unittest.TestCase): self.m.ReplayAll() man = manager.EngineManager() - sl = man.show_stack(ctx, 'wibble', {}) - self.assertEqual(len(sl['stacks']), 0) + self.assertRaises(AttributeError, + man.show_stack, + ctx, 'wibble', {}) def test_stack_describe(self): ctx = self.create_context('stack_describe') -- 2.45.2