From: Chris Alfonso Date: Wed, 11 Apr 2012 11:15:13 +0000 (-0400) Subject: Making delete stack work X-Git-Tag: 2014.1~2055 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=1c96afa5023bcb83821057e44506bac7248b4b19;p=openstack-build%2Fheat-build.git Making delete stack work --- diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index cbdd4a71..7db9d520 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -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).\ diff --git a/heat/engine/manager.py b/heat/engine/manager.py index 6cea4327..7ad2da23 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -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)