I'll put this in gerrit once my application for the -cla team is approved, but to start with:
This just makes the code cleaner; I need to track down whether openstack has backfill helpers or just assumes downtime is ok for the change to have the join table non-nullable.
diff --git a/keystone/identity/backends/sql.py b/keystone/identity/backends/sql.py
index dafd19b..d13683c 100644
--- a/keystone/identity/backends/sql.py
+++ b/keystone/identity/backends/sql.py
@@ -385,27 +385,13 @@ class Identity(sql.Base, identity.Driver):
def delete_user(self, user_id):
session = self.get_session()
- user_ref = session.query(User).filter_by(id=user_id).first()
- if not user_ref:
- raise exception.UserNotFound(user_id=user_id)
- membership_refs = session.query(UserTenantMembership)\
- .filter_by(user_id=user_id)\
- .all()
- metadata_refs = session.query(Metadata)\
- .filter_by(user_id=user_id)\
- .all()
-
with session.begin():
- if membership_refs:
- for membership_ref in membership_refs:
- session.delete(membership_ref)
- session.flush()
- if metadata_refs:
- for metadata_ref in metadata_refs:
- session.delete(metadata_ref)
-
- session.delete(user_ref)
- session.flush()
+ session.query(UserTenantMembership)\
+ .filter_by(user_id=user_id).delete(False)
+ session.query(Metadata)\
+ .filter_by(user_id=user_id).delete(False)
+ if not session.query(User).filter_by(id=user_id).delete(False):
+ raise exception.UserNotFound(user_id=user_id)
I'll put this in gerrit once my application for the -cla team is approved, but to start with:
This just makes the code cleaner; I need to track down whether openstack has backfill helpers or just assumes downtime is ok for the change to have the join table non-nullable.
diff --git a/keystone/ identity/ backends/ sql.py b/keystone/ identity/ backends/ sql.py identity/ backends/ sql.py identity/ backends/ sql.py
index dafd19b..d13683c 100644
--- a/keystone/
+++ b/keystone/
@@ -385,27 +385,13 @@ class Identity(sql.Base, identity.Driver):
def delete_user(self, user_id): query(User) .filter_ by(id=user_ id).first( ) UserNotFound( user_id= user_id) query(UserTenan tMembership) \ by(user_ id=user_ id)\ query(Metadata) \ by(user_ id=user_ id)\ delete( membership_ ref) delete( metadata_ ref) delete( user_ref) query(UserTenan tMembership) \ by(user_ id=user_ id).delete( False) query(Metadata) \ by(user_ id=user_ id).delete( False) query(User) .filter_ by(id=user_ id).delete( False): UserNotFound( user_id= user_id)
session = self.get_session()
- user_ref = session.
- if not user_ref:
- raise exception.
- membership_refs = session.
- .filter_
- .all()
- metadata_refs = session.
- .filter_
- .all()
-
with session.begin():
- if membership_refs:
- for membership_ref in membership_refs:
- session.
- session.flush()
- if metadata_refs:
- for metadata_ref in metadata_refs:
- session.
-
- session.
- session.flush()
+ session.
+ .filter_
+ session.
+ .filter_
+ if not session.
+ raise exception.
@handle_ conflicts( type='tenant' )
def create_tenant(self, tenant_id, tenant):
@@ -438,26 +424,13 @@ class Identity(sql.Base, identity.Driver):
def delete_tenant(self, tenant_id): query(Tenant) .filter_ by(id=tenant_ id).first( ) TenantNotFound( tenant_ id=tenant_ id) query(UserTenan tMembership) \ by(tenant_ id=tenant_ id)\ query(Metadata) \ by(tenant_ id=tenant_ id)\ delete( membership_ ref) delete( metadata_ ref) delete( tenant_ ref) query(UserTenan tMembership) \ by(tenant_ id=tenant_ id).delete( False) query(Metadata) \ by(tenant_ id=tenant_ id).delete( False) query(Tenant) .filter_ by(id=tenant_ id).delete( False): TenantNotFound( tenant_ id=tenant_ id)
session = self.get_session()
- tenant_ref = session.
- if not tenant_ref:
- raise exception.
- membership_refs = session.
- .filter_
- .all()
- metadata_refs = session.
- .filter_
- .all()
-
with session.begin():
- if membership_refs:
- for membership_ref in membership_refs:
- session.
- if metadata_refs:
- for metadata_ref in metadata_refs:
- session.
-
- session.
- session.flush()
+ session.
+ .filter_
+ session.
+ .filter_
+ if not session.
+ raise exception.
@handle_ conflicts( type='metadata' ) metadata( self, user_id, tenant_id, metadata):
def create_