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:
Eric Guo 2014-01-07 20:52:16 +08:00
parent 11bb081d0e
commit 2f317347d2
8 changed files with 0 additions and 36 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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