Deleting parsed and raw template when deleting stacks

This commit is contained in:
Chris Alfonso
2012-04-18 12:29:52 -04:00
parent fc77b204f8
commit 7921648911
2 changed files with 15 additions and 8 deletions

View File

@@ -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()

View File

@@ -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)