From fa5e93df10a640053836101d11500f85b2ae7f18 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Mon, 18 Feb 2013 20:01:42 +0000 Subject: [PATCH] make engine api handle string or bool disable_rollback Allow API's to pass string or bool format True/False flag for the disable_rollback argument to the engine RPC API Change-Id: I1886263ac2487c4cb36c8bd93fd1d09b04abe813 --- heat/engine/api.py | 6 ++++-- heat/tests/test_engine_api_utils.py | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/heat/engine/api.py b/heat/engine/api.py index 29bdb4bd..5a3a3d63 100644 --- a/heat/engine/api.py +++ b/heat/engine/api.py @@ -38,8 +38,10 @@ def extract_args(params): if PARAM_DISABLE_ROLLBACK in params: disable_rollback = params.get(PARAM_DISABLE_ROLLBACK) - if disable_rollback in (True, False): - kwargs[PARAM_DISABLE_ROLLBACK] = disable_rollback + if str(disable_rollback).lower() == 'true': + kwargs[PARAM_DISABLE_ROLLBACK] = True + elif str(disable_rollback).lower() == 'false': + kwargs[PARAM_DISABLE_ROLLBACK] = False else: raise ValueError("Unexpected value for parameter %s : %s" % (PARAM_DISABLE_ROLLBACK, disable_rollback)) diff --git a/heat/tests/test_engine_api_utils.py b/heat/tests/test_engine_api_utils.py index 6eea86fc..801748f8 100644 --- a/heat/tests/test_engine_api_utils.py +++ b/heat/tests/test_engine_api_utils.py @@ -51,11 +51,27 @@ class EngineApiTest(unittest.TestCase): self.assertTrue('disable_rollback' in args) self.assertTrue(args.get('disable_rollback')) + args = api.extract_args({'disable_rollback': 'True'}) + self.assertTrue('disable_rollback' in args) + self.assertTrue(args.get('disable_rollback')) + + args = api.extract_args({'disable_rollback': 'true'}) + self.assertTrue('disable_rollback' in args) + self.assertTrue(args.get('disable_rollback')) + def test_disable_rollback_extract_false(self): args = api.extract_args({'disable_rollback': False}) self.assertTrue('disable_rollback' in args) self.assertFalse(args.get('disable_rollback')) + args = api.extract_args({'disable_rollback': 'False'}) + self.assertTrue('disable_rollback' in args) + self.assertFalse(args.get('disable_rollback')) + + args = api.extract_args({'disable_rollback': 'false'}) + self.assertTrue('disable_rollback' in args) + self.assertFalse(args.get('disable_rollback')) + def test_disable_rollback_extract_bad(self): self.assertRaises(ValueError, api.extract_args, {'disable_rollback': 'bad'}) -- 2.45.2