Don't need session.flush in context managed by session
Within the scope of a single method, keeping all the reads and writes within the context managed by a single session. In this way, the session's __exit__ handler will take care of calling flush() and commit() for you. If using this approach, you should not explicitly call flush() or commit(). See http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html#committing Closes-Bug: #1258044 Change-Id: I1125c72712203f1594ef245761dbfc25ed31eab2
This commit is contained in:
parent
11bb081d0e
commit
2f317347d2
|
@ -76,14 +76,12 @@ class Catalog(sql.Base, catalog.Driver):
|
|||
ref = self._get_service(session, service_id)
|
||||
session.query(Endpoint).filter_by(service_id=service_id).delete()
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
|
||||
def create_service(self, service_id, service_ref):
|
||||
session = self.get_session()
|
||||
with session.begin():
|
||||
service = Service.from_dict(service_ref)
|
||||
session.add(service)
|
||||
session.flush()
|
||||
return service.to_dict()
|
||||
|
||||
def update_service(self, service_id, service_ref):
|
||||
|
@ -97,7 +95,6 @@ class Catalog(sql.Base, catalog.Driver):
|
|||
if attr != 'id':
|
||||
setattr(ref, attr, getattr(new_service, attr))
|
||||
ref.extra = new_service.extra
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
# Endpoints
|
||||
|
@ -107,7 +104,6 @@ class Catalog(sql.Base, catalog.Driver):
|
|||
new_endpoint = Endpoint.from_dict(endpoint_ref)
|
||||
with session.begin():
|
||||
session.add(new_endpoint)
|
||||
session.flush()
|
||||
return new_endpoint.to_dict()
|
||||
|
||||
def delete_endpoint(self, endpoint_id):
|
||||
|
@ -115,7 +111,6 @@ class Catalog(sql.Base, catalog.Driver):
|
|||
with session.begin():
|
||||
ref = self._get_endpoint(session, endpoint_id)
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
|
||||
def _get_endpoint(self, session, endpoint_id):
|
||||
try:
|
||||
|
@ -143,7 +138,6 @@ class Catalog(sql.Base, catalog.Driver):
|
|||
if attr != 'id':
|
||||
setattr(ref, attr, getattr(new_endpoint, attr))
|
||||
ref.extra = new_endpoint.extra
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
def get_catalog(self, user_id, tenant_id, metadata=None):
|
||||
|
|
|
@ -44,7 +44,6 @@ class EndpointFilter(sql.Base):
|
|||
endpoint_filter_ref = ProjectEndpoint(endpoint_id=endpoint_id,
|
||||
project_id=project_id)
|
||||
session.add(endpoint_filter_ref)
|
||||
session.flush()
|
||||
|
||||
def _get_project_endpoint_ref(self, session, endpoint_id, project_id):
|
||||
endpoint_filter_ref = session.query(ProjectEndpoint).get(
|
||||
|
@ -66,7 +65,6 @@ class EndpointFilter(sql.Base):
|
|||
session, endpoint_id, project_id)
|
||||
with session.begin():
|
||||
session.delete(endpoint_filter_ref)
|
||||
session.flush()
|
||||
|
||||
def list_endpoints_for_project(self, project_id):
|
||||
session = self.get_session()
|
||||
|
|
|
@ -108,7 +108,6 @@ class OAuth1(sql.Base):
|
|||
with session.begin():
|
||||
consumer_ref = Consumer.from_dict(consumer)
|
||||
session.add(consumer_ref)
|
||||
session.flush()
|
||||
return consumer_ref.to_dict()
|
||||
|
||||
def _delete_consumer(self, session, consumer_id):
|
||||
|
@ -146,7 +145,6 @@ class OAuth1(sql.Base):
|
|||
self._delete_request_tokens(session, consumer_id)
|
||||
self._delete_access_tokens(session, consumer_id)
|
||||
self._delete_consumer(session, consumer_id)
|
||||
session.flush()
|
||||
|
||||
def list_consumers(self):
|
||||
session = self.get_session()
|
||||
|
@ -162,7 +160,6 @@ class OAuth1(sql.Base):
|
|||
new_consumer = Consumer.from_dict(old_consumer_dict)
|
||||
consumer_ref.description = new_consumer.description
|
||||
consumer_ref.extra = new_consumer.extra
|
||||
session.flush()
|
||||
return core.filter_consumer(consumer_ref.to_dict())
|
||||
|
||||
def create_request_token(self, consumer_id, project_id, token_duration):
|
||||
|
@ -186,7 +183,6 @@ class OAuth1(sql.Base):
|
|||
with session.begin():
|
||||
token_ref = RequestToken.from_dict(ref)
|
||||
session.add(token_ref)
|
||||
session.flush()
|
||||
return token_ref.to_dict()
|
||||
|
||||
def _get_request_token(self, session, request_token_id):
|
||||
|
@ -216,7 +212,6 @@ class OAuth1(sql.Base):
|
|||
or attr == 'role_ids'):
|
||||
setattr(token_ref, attr, getattr(new_token, attr))
|
||||
|
||||
session.flush()
|
||||
return token_ref.to_dict()
|
||||
|
||||
def create_access_token(self, request_token_id, token_duration):
|
||||
|
@ -250,7 +245,6 @@ class OAuth1(sql.Base):
|
|||
q.delete(False)
|
||||
session.delete(req_token_ref)
|
||||
|
||||
session.flush()
|
||||
return token_ref.to_dict()
|
||||
|
||||
def _get_access_token(self, session, access_token_id):
|
||||
|
@ -283,4 +277,3 @@ class OAuth1(sql.Base):
|
|||
q.delete(False)
|
||||
|
||||
session.delete(token_ref)
|
||||
session.flush()
|
||||
|
|
|
@ -45,7 +45,6 @@ class Credential(sql.Base, credential.Driver):
|
|||
with session.begin():
|
||||
ref = CredentialModel.from_dict(credential)
|
||||
session.add(ref)
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
def list_credentials(self, **filters):
|
||||
|
@ -79,7 +78,6 @@ class Credential(sql.Base, credential.Driver):
|
|||
if attr != 'id':
|
||||
setattr(ref, attr, getattr(new_credential, attr))
|
||||
ref.extra = new_credential.extra
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
def delete_credential(self, credential_id):
|
||||
|
@ -88,7 +86,6 @@ class Credential(sql.Base, credential.Driver):
|
|||
with session.begin():
|
||||
ref = self._get_credential(session, credential_id)
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
|
||||
def delete_credentials_for_project(self, project_id):
|
||||
session = self.get_session()
|
||||
|
|
|
@ -117,7 +117,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
with session.begin():
|
||||
user_ref = User.from_dict(user)
|
||||
session.add(user_ref)
|
||||
session.flush()
|
||||
return identity.filter_user(user_ref.to_dict())
|
||||
|
||||
def list_users(self):
|
||||
|
@ -163,7 +162,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
if attr != 'id':
|
||||
setattr(user_ref, attr, getattr(new_user, attr))
|
||||
user_ref.extra = new_user.extra
|
||||
session.flush()
|
||||
return identity.filter_user(user_ref.to_dict(include_extra_dict=True))
|
||||
|
||||
def add_user_to_group(self, user_id, group_id):
|
||||
|
@ -180,7 +178,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
with session.begin():
|
||||
session.add(UserGroupMembership(user_id=user_id,
|
||||
group_id=group_id))
|
||||
session.flush()
|
||||
|
||||
def check_user_in_group(self, user_id, group_id):
|
||||
session = self.get_session()
|
||||
|
@ -204,7 +201,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
raise exception.NotFound('User not found in group')
|
||||
with session.begin():
|
||||
session.delete(membership_ref)
|
||||
session.flush()
|
||||
|
||||
def list_groups_for_user(self, user_id):
|
||||
session = self.get_session()
|
||||
|
@ -232,7 +228,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
q.delete(False)
|
||||
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
self.assignment_api.delete_user(user_id)
|
||||
|
||||
# group crud
|
||||
|
@ -243,7 +238,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
with session.begin():
|
||||
ref = Group.from_dict(group)
|
||||
session.add(ref)
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
def list_groups(self):
|
||||
|
@ -275,7 +269,6 @@ class Identity(sql.Base, identity.Driver):
|
|||
if attr != 'id':
|
||||
setattr(ref, attr, getattr(new_group, attr))
|
||||
ref.extra = new_group.extra
|
||||
session.flush()
|
||||
return ref.to_dict()
|
||||
|
||||
def delete_group(self, group_id):
|
||||
|
@ -289,5 +282,4 @@ class Identity(sql.Base, identity.Driver):
|
|||
q.delete(False)
|
||||
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
self.assignment_api.delete_group(group_id)
|
||||
|
|
|
@ -41,7 +41,6 @@ class Policy(sql.Base, rules.Policy):
|
|||
with session.begin():
|
||||
ref = PolicyModel.from_dict(policy)
|
||||
session.add(ref)
|
||||
session.flush()
|
||||
|
||||
return ref.to_dict()
|
||||
|
||||
|
@ -75,7 +74,6 @@ class Policy(sql.Base, rules.Policy):
|
|||
ref.blob = new_policy.blob
|
||||
ref.type = new_policy.type
|
||||
ref.extra = new_policy.extra
|
||||
session.flush()
|
||||
|
||||
return ref.to_dict()
|
||||
|
||||
|
@ -85,4 +83,3 @@ class Policy(sql.Base, rules.Policy):
|
|||
with session.begin():
|
||||
ref = self._get_policy(session, policy_id)
|
||||
session.delete(ref)
|
||||
session.flush()
|
||||
|
|
|
@ -61,7 +61,6 @@ class Token(sql.Base, token.Driver):
|
|||
session = self.get_session()
|
||||
with session.begin():
|
||||
session.add(token_ref)
|
||||
session.flush()
|
||||
return token_ref.to_dict()
|
||||
|
||||
def delete_token(self, token_id):
|
||||
|
@ -71,7 +70,6 @@ class Token(sql.Base, token.Driver):
|
|||
if not token_ref or not token_ref.valid:
|
||||
raise exception.TokenNotFound(token_id=token_id)
|
||||
token_ref.valid = False
|
||||
session.flush()
|
||||
|
||||
def delete_tokens(self, user_id, tenant_id=None, trust_id=None,
|
||||
consumer_id=None):
|
||||
|
@ -106,8 +104,6 @@ class Token(sql.Base, token.Driver):
|
|||
|
||||
token_ref.valid = False
|
||||
|
||||
session.flush()
|
||||
|
||||
def _tenant_matches(self, tenant_id, token_ref_dict):
|
||||
return ((tenant_id is None) or
|
||||
(token_ref_dict.get('tenant') and
|
||||
|
@ -166,7 +162,6 @@ class Token(sql.Base, token.Driver):
|
|||
token_ref_dict = token_ref.to_dict()
|
||||
if self._consumer_matches(consumer_id, token_ref_dict):
|
||||
tokens.append(token_ref_dict['id'])
|
||||
session.flush()
|
||||
return tokens
|
||||
|
||||
def _list_tokens(self, user_id, tenant_id=None, trust_id=None,
|
||||
|
|
|
@ -60,7 +60,6 @@ class Trust(sql.Base, trust.Driver):
|
|||
trust_role.role_id = role['id']
|
||||
added_roles.append({'id': role['id']})
|
||||
session.add(trust_role)
|
||||
session.flush()
|
||||
trust_dict = ref.to_dict()
|
||||
trust_dict['roles'] = added_roles
|
||||
return trust_dict
|
||||
|
@ -118,4 +117,3 @@ class Trust(sql.Base, trust.Driver):
|
|||
if not trust_ref:
|
||||
raise exception.TrustNotFound(trust_id=trust_id)
|
||||
trust_ref.deleted_at = timeutils.utcnow()
|
||||
session.flush()
|
||||
|
|
Loading…
Reference in New Issue