Make sure cluster-policy association is deleted when a cluster is deleted

This commit is contained in:
QI ZHANG
2015-03-04 15:00:15 +08:00
parent 9014fc294d
commit 49fe382992
2 changed files with 13 additions and 6 deletions

View File

@@ -21,6 +21,7 @@ from oslo_config import cfg
from oslo_db.sqlalchemy import session as db_session
from oslo_db.sqlalchemy import utils
from oslo_log import log as logging
from oslo_utils import timeutils
from sqlalchemy import exc
from sqlalchemy.orm import session as orm_session
@@ -291,13 +292,20 @@ def cluster_delete(context, cluster_id):
query = session.query(models.Node).filter_by(cluster_id=cluster_id)
nodes = query.all()
if len(nodes) != 0:
for node in nodes:
session.delete(node)
session.delete(node)
cluster.soft_delete(session=session)
session.flush()
# Delete all related cluster_policies records
for cp in cluster.policies:
session.delete(cp)
# Do soft delete and set the status
cluster.update_and_save({'deleted_time': timeutils.utcnow(),
'status': 'DELETED',
'status_reason': 'Cluster deletion succeeded'},
session=session)
# Nodes
def node_create(context, values):