]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Don't use ModelBase.save() inside of transaction
authorChangBo Guo(gcb) <eric.guo@easystack.cn>
Wed, 5 Mar 2014 09:00:58 +0000 (17:00 +0800)
committerChangBo Guo(gcb) <eric.guo@easystack.cn>
Thu, 26 Jun 2014 04:14:34 +0000 (12:14 +0800)
commit13387c01390e70c9d7811760e603e6306d6d7ea7
tree9633963f842625d6a5a2a7d42dd871879ab341af
parentd63f4beda80759e073767e16e240a0b491d791b5
Don't use ModelBase.save() inside of transaction

'with session.begin()' makes some operations in one transaction.
session.begin() returns a transaction instance, then does some operations,
and will commit or rollback automatically before leaving the block.
ModelBase.save() always submit a commit, and that is not expected.
When we get a persistent object from database, we just modify the
object inside of block 'with session.begin()' and sqlalchemy will
update it, don't need method session.add() or ModelBase.save().

Closes-Bug: #1224429
Change-Id: I4af58e98b2783d3945d92e57680d58e7ae356a67
cinder/db/sqlalchemy/api.py