]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Don't assume a Parameter value is a str
authorSteve Baker <sbaker@redhat.com>
Wed, 27 Mar 2013 00:35:54 +0000 (13:35 +1300)
committerSteve Baker <sbaker@redhat.com>
Wed, 27 Mar 2013 20:32:04 +0000 (09:32 +1300)
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
heat/engine/parameters.py
heat/tests/test_parameters.py

index bc1bf281d4da35e5d5becd5814f2b3ee42873339..3776e1af1394fe56436eb0a917cabf8140a570b4 100644 (file)
@@ -120,7 +120,7 @@ class Parameter(object):
         if self.no_echo():
             return '******'
         else:
-            return value
+            return str(value)
 
 
 class NumberParam(Parameter):
index dc530e7979cf4767966fd9fb22f118980bc13cf9..b19831ba88fce919c4ad2944007fd6d769b177e5 100644 (file)
@@ -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)