]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Making delete stack work
authorChris Alfonso <calfonso@redhat.com>
Wed, 11 Apr 2012 11:15:13 +0000 (07:15 -0400)
committerChris Alfonso <calfonso@redhat.com>
Wed, 11 Apr 2012 13:06:46 +0000 (09:06 -0400)
heat/db/sqlalchemy/api.py
heat/engine/manager.py

index cbdd4a714ce9905b06049c1f60d0901f5f15ee47..7db9d52033270a0215a0696468ece36d209883c7 100644 (file)
@@ -14,6 +14,7 @@
 #    under the License.
 
 '''Implementation of SQLAlchemy backend.'''
+from sqlalchemy.orm.session import Session
 
 from nova import utils
 from heat.db.sqlalchemy import models
@@ -134,9 +135,16 @@ def stack_delete(context, stack_name):
     if not s:
         raise Exception('Attempt to delete a stack with id: %s that does not exist' % stack_name)
 
-    #for e in s.events:
-    #    e.delete()
-    s.delete()
+    session = Session.object_session(s)
+
+    for e in s.events:
+        session.delete(e)
+
+    for r in s.resources:
+        session.delete(r)
+
+    session.delete(s)
+    session.flush()
 
 def event_get(context, event_id):
     result = model_query(context, models.Event).\
index 6cea4327c994da32e339b0b19da8ba198bfcede4..7ad2da23c1e93cf5779f306480a4a0e7e4d67f21 100644 (file)
@@ -125,7 +125,7 @@ class EngineManager(manager.Manager):
         for r in ps.resources:
             ps.resources[r].stop()
         db_api.stack_delete(None, stack_name)
-        return list_stacks(context, stack_name, params)
+        return None 
         
     def list_events(self, context, stack_name):
         return db_api.event_get_all_by_stack(None, stack_name)