]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Adding a deepcopy of the template before stack create validation
authorChris Alfonso <calfonso@redhat.com>
Thu, 10 May 2012 19:02:46 +0000 (15:02 -0400)
committerChris Alfonso <calfonso@redhat.com>
Thu, 10 May 2012 19:02:46 +0000 (15:02 -0400)
Calling stack.validate will modify the stack's template, which
we don't want to do.  We just want to validate the template and move
on with an already parsed template.

heat/engine/manager.py
heat/tests/__init__.py

index 1bfca4534138ef0fd559c386a0374d6e27b3ec03..366525a85a95a0af54b04f796c71b18d2c2bfb5b 100644 (file)
@@ -124,6 +124,18 @@ class EngineManager(manager.Manager):
             return {'Error': 'Stack already exists with that name.'}
 
         metadata_server = config.FLAGS.heat_metadata_server_url
+        # We don't want to reset the stack template, so we are making
+        # an instance just for validation.
+        template_copy = deepcopy(template)
+        stack_validator = parser.Stack(stack_name, template_copy, 0, params,
+                             metadata_server=metadata_server)
+        response = stack_validator.validate()
+        stack_validator = None
+        template_copy = None
+        if 'Malformed Query Response' in \
+                response['ValidateTemplateResult']['Description']:
+            return response['ValidateTemplateResult']['Description']
+
         stack = parser.Stack(stack_name, template, 0, params,
                              metadata_server=metadata_server)
         rt = {}
index 9ae10129adc8ce28d926026e2138e6a3bf373e47..6328de3ee9be051b5bd3c674e7055c76195b729b 100644 (file)
@@ -21,8 +21,6 @@ import os
 import shutil
 
 from heat.db.sqlalchemy.session import get_engine
-import pdb
-
 
 def reset_db():
     if os.path.exists('heat-test.db'):