From: Chris Alfonso Date: Thu, 10 May 2012 19:02:46 +0000 (-0400) Subject: Adding a deepcopy of the template before stack create validation X-Git-Tag: 2014.1~1854 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=3d5b05c50dc40aab5aedea1a4af8573b5e8e6212;p=openstack-build%2Fheat-build.git Adding a deepcopy of the template before stack create validation 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. --- diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 1bfca453..366525a8 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -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 = {} diff --git a/heat/tests/__init__.py b/heat/tests/__init__.py index 9ae10129..6328de3e 100644 --- a/heat/tests/__init__.py +++ b/heat/tests/__init__.py @@ -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'):