From: Zane Bitter Date: Fri, 23 Aug 2013 23:05:47 +0000 (+0200) Subject: Store the backup stack during updates X-Git-Tag: 2014.1~143^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=0cba44ee3f3e3fe15cf0c1c025baefdc560ddce0;p=openstack-build%2Fheat-build.git Store the backup stack during updates Change-Id: I64e19b0117c98eced4308727594b77e938d7ee4c --- diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index 22e6ca15..b72d09c3 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -226,14 +226,6 @@ def stack_update(context, stack_id, values): stack.update(values) stack.save(_session(context)) - # When the raw_template ID changes, we delete the old template - # after storing the new template ID - if stack.raw_template_id != old_template_id: - session = Session.object_session(stack) - rt = raw_template_get(context, old_template_id) - session.delete(rt) - session.flush() - def stack_delete(context, stack_id): s = stack_get(context, stack_id) diff --git a/heat/engine/parser.py b/heat/engine/parser.py index f0c57134..ec5afad8 100644 --- a/heat/engine/parser.py +++ b/heat/engine/parser.py @@ -408,8 +408,10 @@ class Stack(object): 'Stack %s started' % action) oldstack = Stack(self.context, self.name, self.t, self.env) + backup_stack = self._backup_stack() + try: - update_task = update.StackUpdate(self, newstack, oldstack) + update_task = update.StackUpdate(self, newstack, backup_stack) updater = scheduler.TaskRunner(update_task) self.env = newstack.env @@ -440,6 +442,9 @@ class Stack(object): if not self.disable_rollback: self.update(oldstack, action=self.ROLLBACK) return + else: + logger.debug('Deleting backup stack') + backup_stack.delete() self.state_set(action, stack_status, reason)