From 3d5b05c50dc40aab5aedea1a4af8573b5e8e6212 Mon Sep 17 00:00:00 2001 From: Chris Alfonso Date: Thu, 10 May 2012 15:02:46 -0400 Subject: [PATCH] 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. --- heat/engine/manager.py | 12 ++++++++++++ heat/tests/__init__.py | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) 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'): -- 2.45.2