]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Parse all templates with format.parse_to_template
authorSteve Baker <sbaker@redhat.com>
Mon, 26 Nov 2012 00:01:11 +0000 (13:01 +1300)
committerSteve Baker <sbaker@redhat.com>
Mon, 26 Nov 2012 02:11:04 +0000 (15:11 +1300)
It can no longer be assumed that a template string is in JSON format.

Change-Id: Id43b82a25e62f7c7868c1c51556c5bde94e7b132

heat/api/cfn/v1/stacks.py
heat/engine/parser.py
heat/engine/resources/dbinstance.py
heat/engine/resources/loadbalancer.py
heat/engine/resources/stack.py

index 314d1ec6e71546e993a23cb7007149b5c150029a..7501434b2d76adf9c909777a6fc226022967dfc8 100644 (file)
@@ -26,6 +26,7 @@ from heat.api.aws import exception
 from heat.api.aws import utils as api_utils
 from heat.common import wsgi
 from heat.engine import rpcapi as engine_rpcapi
+from heat.engine import format
 import heat.engine.api as engine_api
 from heat.engine import identifier
 
@@ -315,7 +316,7 @@ class StackController(object):
             return exception.HeatMissingParameterError(detail=msg)
 
         try:
-            stack = json.loads(templ)
+            stack = format.parse_to_template(templ)
         except ValueError:
             msg = _("The Template must be a JSON document.")
             return exception.HeatInvalidParameterValueError(detail=msg)
index edf44783ee1852844519a230c42fa52f8efcbbf8..d339524071d9c6d6b5ce086d67d8df92c165a381 100644 (file)
@@ -430,7 +430,7 @@ def resolve_static_data(template, parameters, snippet):
 
     Example:
 
-    >>> template = Template(json.load(template_path))
+    >>> template = Template(format.parse_to_template(template_path))
     >>> parameters = Parameters('stack', template, {'KeyName': 'my_key'})
     >>> resolve_static_data(template, parameters, {'Ref': 'KeyName'})
     'my_key'
index 0f36a8f5e464f833bd3ae1752a0598c14f72f570..b3b14d99508c717b591e56260825ce22ac940720 100644 (file)
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import json
-
 from heat.common import exception
 from heat.engine.resources import stack
-
+from heat.engine import format
 from heat.openstack.common import log as logging
 
 logger = logging.getLogger(__file__)
@@ -221,7 +219,7 @@ class DBInstance(stack.Stack):
         return p
 
     def handle_create(self):
-        templ = json.loads(mysql_template)
+        templ = format.parse_to_template(mysql_template)
         self.create_with_template(templ)
 
     def FnGetAtt(self, key):
index b6ddc37502b48737dada94aa0afe5f14b56790e3..2d7135c5ce59af2105c50fe0807dbcba34e408c8 100644 (file)
@@ -13,9 +13,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import json
-
 from heat.common import exception
+from heat.engine import format
 from heat.engine.resources import stack
 from novaclient.exceptions import NotFound
 
@@ -284,7 +283,7 @@ class LoadBalancer(stack.Stack):
         return '%s%s%s%s\n' % (gl, frontend, backend, '\n'.join(servers))
 
     def handle_create(self):
-        templ = json.loads(lb_template)
+        templ = format.parse_to_template(lb_template)
 
         if self.properties['Instances']:
             md = templ['Resources']['LB_instance']['Metadata']
@@ -314,7 +313,7 @@ class LoadBalancer(stack.Stack):
         save it to the db.
         rely on the cfn-hup to reconfigure HAProxy
         '''
-        templ = json.loads(lb_template)
+        templ = format.parse_to_template(lb_template)
         cfg = self._haproxy_config(templ, inst_list)
 
         md = self.nested()['LB_instance'].metadata
index 592d08ed57f1334f7ce1896c3edc43ff46e0ca4c..726a2de1868134e818b07eaf545a23469bbe5861 100644 (file)
@@ -17,6 +17,7 @@ import urllib2
 import json
 
 from heat.common import exception
+from heat.engine import format
 from heat.engine.resources import resource
 from heat.engine import parser
 
@@ -75,7 +76,7 @@ class Stack(resource.Resource):
 
     def handle_create(self):
         response = urllib2.urlopen(self.properties[PROP_TEMPLATE_URL])
-        template = json.load(response)
+        template = format.parse_to_template(response)
 
         self.create_with_template(template)