From 1c96afa5023bcb83821057e44506bac7248b4b19 Mon Sep 17 00:00:00 2001 From: Chris Alfonso Date: Wed, 11 Apr 2012 07:15:13 -0400 Subject: [PATCH] Making delete stack work --- heat/db/sqlalchemy/api.py | 14 +++++++++++--- heat/engine/manager.py | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) 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) -- 2.45.2