summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baker <sbaker@redhat.com>2013-03-27 13:35:54 +1300
committerThierry Carrez <thierry@openstack.org>2013-03-28 17:15:08 +0100
commite72608459424869a36c109637a159a49866557a9 (patch)
treee598bd4573f7c07610d2d811271c406741fa2433
parent1ac1f895132f2dcbab67025fbc7309b0efeccd28 (diff)
downloadheat-2013.1.rc2.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.py2
-rw-r--r--heat/tests/test_parameters.py14
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)