]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Store the backup stack during updates
authorZane Bitter <zbitter@redhat.com>
Fri, 23 Aug 2013 23:05:47 +0000 (01:05 +0200)
committerZane Bitter <zbitter@redhat.com>
Fri, 23 Aug 2013 23:05:47 +0000 (01:05 +0200)
Change-Id: I64e19b0117c98eced4308727594b77e938d7ee4c

heat/db/sqlalchemy/api.py
heat/engine/parser.py

index 22e6ca15c761791d9dc9722e910cbfe64a99e742..b72d09c34888cfca33d5dfe82eabff13fab076a6 100644 (file)
@@ -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)
index f0c5713477759520a81ccbfd918cd2678daf9d04..ec5afad8a695b3edc60616b2b5c3a16b0620b472 100644 (file)
@@ -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)