From 0cba44ee3f3e3fe15cf0c1c025baefdc560ddce0 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Sat, 24 Aug 2013 01:05:47 +0200 Subject: [PATCH] Store the backup stack during updates Change-Id: I64e19b0117c98eced4308727594b77e938d7ee4c --- heat/db/sqlalchemy/api.py | 8 -------- heat/engine/parser.py | 7 ++++++- 2 files changed, 6 insertions(+), 9 deletions(-) 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) -- 2.45.2