From 7921648911a91d1f40be3b353bb57887fed3b783 Mon Sep 17 00:00:00 2001 From: Chris Alfonso Date: Wed, 18 Apr 2012 12:29:52 -0400 Subject: [PATCH] Deleting parsed and raw template when deleting stacks --- heat/db/sqlalchemy/api.py | 12 +++++++++++- heat/db/sqlalchemy/models.py | 11 ++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index 657f704b..14829c4b 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -19,7 +19,6 @@ from sqlalchemy.orm.session import Session from heat.db.sqlalchemy import models from heat.db.sqlalchemy.session import get_session - def model_query(context, *args, **kwargs): """ :param session: if present, the session to use @@ -156,8 +155,19 @@ def stack_delete(context, stack_name): for e in s.events: session.delete(e) + rpt = {} + rrt = {} for r in s.resources: + rpt[r.parsed_template.id] = r.parsed_template + rrt[r.parsed_template.raw_template.id] = \ + r.parsed_template.raw_template session.delete(r) + + for pt in rpt.values(): + session.delete(pt) + + for rt in rrt.values(): + session.delete(rt) session.delete(s) session.flush() diff --git a/heat/db/sqlalchemy/models.py b/heat/db/sqlalchemy/models.py index c1f75b8f..b85c3c9f 100644 --- a/heat/db/sqlalchemy/models.py +++ b/heat/db/sqlalchemy/models.py @@ -104,9 +104,7 @@ class RawTemplate(BASE, HeatBase): id = Column(Integer, primary_key=True) template = Column(Json) parsed_template = relationship("ParsedTemplate",\ - uselist=False, backref="raw_template", - cascade="all, delete", - passive_deletes=True) + uselist=False, backref="raw_template") class ParsedTemplate(BASE, HeatBase): @@ -129,7 +127,7 @@ class Stack(BASE, HeatBase): raw_template_id = Column(Integer, ForeignKey('raw_template.id'),\ nullable=False) raw_template = relationship(RawTemplate, - backref=backref('stack'), cascade="all, delete", passive_deletes=True) + backref=backref('stack')) class Event(BASE, HeatBase): @@ -141,7 +139,7 @@ class Event(BASE, HeatBase): stack_id = Column(Integer, ForeignKey('stack.id'),\ nullable=False) stack = relationship(Stack, - backref=backref('events'), cascade="all, delete", passive_deletes=True) + backref=backref('events')) name = Column(String) logical_resource_id = Column(String) @@ -169,7 +167,6 @@ class Resource(BASE, HeatBase): stack_id = Column(Integer, ForeignKey('stack.id'),\ nullable=False) - stack = relationship(Stack, backref=backref('resources'), - cascade="all, delete", passive_deletes=True) + stack = relationship(Stack, backref=backref('resources')) depends_on = Column(Integer) -- 2.45.2