Merge "Improve autonested_transaction"

This commit is contained in:
Jenkins 2016-01-28 09:33:33 +00:00 committed by Gerrit Code Review
commit 0852f55ccd
1 changed files with 5 additions and 7 deletions

View File

@ -21,7 +21,6 @@ from oslo_db import exception as db_exc
from oslo_db.sqlalchemy import session
from oslo_utils import excutils
from oslo_utils import uuidutils
from sqlalchemy import exc
from neutron.common import exceptions as n_exc
from neutron.db import common_db_mixin
@ -81,13 +80,12 @@ def get_session(autocommit=True, expire_on_commit=False, use_slave=False):
@contextlib.contextmanager
def autonested_transaction(sess):
"""This is a convenience method to not bother with 'nested' parameter."""
try:
session_context = sess.begin_nested()
except exc.InvalidRequestError:
if sess.is_active:
session_context = sess.begin(nested=True)
else:
session_context = sess.begin(subtransactions=True)
finally:
with session_context as tx:
yield tx
with session_context as tx:
yield tx
# Common database operation implementations