diff options
author | Steve Baker <sbaker@redhat.com> | 2013-03-27 13:35:54 +1300 |
---|---|---|
committer | Thierry Carrez <thierry@openstack.org> | 2013-03-28 17:15:08 +0100 |
commit | e72608459424869a36c109637a159a49866557a9 (patch) | |
tree | e598bd4573f7c07610d2d811271c406741fa2433 | |
parent | 1ac1f895132f2dcbab67025fbc7309b0efeccd28 (diff) | |
download | heat-2013.1.tar.gz |
Don't assume a Parameter value is a str2013.1.rc22013.1
Currently show_stack and list_stacks will fail for templates
which have a Number in the Parameters.
This should be considered for backport to milestone_proposed.
Change-Id: I1b20babf0998f7714f8bc7bf144e03ff1d7c0c91
Fixes: bug #1160653
(cherry picked from commit b76eb46fdeb3431b5220dd909334ba64b7a2515b)
-rw-r--r-- | heat/engine/parameters.py | 2 | ||||
-rw-r--r-- | heat/tests/test_parameters.py | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/heat/engine/parameters.py b/heat/engine/parameters.py index bc1bf281d..3776e1af1 100644 --- a/heat/engine/parameters.py +++ b/heat/engine/parameters.py @@ -120,7 +120,7 @@ class Parameter(object): if self.no_echo(): return '******' else: - return value + return str(value) class NumberParam(Parameter): diff --git a/heat/tests/test_parameters.py b/heat/tests/test_parameters.py index dc530e797..b19831ba8 100644 --- a/heat/tests/test_parameters.py +++ b/heat/tests/test_parameters.py @@ -329,3 +329,17 @@ class ParametersTest(unittest.TestCase): 'AWS::StackName': True} self.assertEqual(params.map(lambda p: p.has_default()), expected) + + def test_map_str(self): + template = {'Parameters': {'Foo': {'Type': 'String'}, + 'Bar': {'Type': 'Number'}}} + params = parameters.Parameters('test_params', template, { + 'Foo': 'foo', 'Bar': 42}) + + expected = {'Foo': 'foo', + 'Bar': '42', + 'AWS::Region': 'ap-southeast-1', + 'AWS::StackId': 'None', + 'AWS::StackName': 'test_params'} + + self.assertEqual(params.map(str), expected) |