924f19e8f1
Methods _create_ha_network, add_ha_port don't have wrapping transaction in them, so they are prone to race conditions. This commit adds a transaction to them. To avoid problem with rolling back outmost transaction during exception handling, internal methods have been wrapped in nested transaction. Nested transaction is required in places like this: def create(): create_something() try: _do_other_thing() except Exception: with excutils.save_and_reraise_exception(): delete_something() def _do_other_thing(): with context.session.begin(subtransactions=True): .... When exception is raised in _do_other_thing it is caught in except block, but the object cannot be deleted in except section because internal transaction has been rolled back. A new method safe_creation and has been added that provides a common way of handling such situations. Closes-bug: #1501686 Change-Id: I952f6f7f8684743aa7f829bd92b1dc41b2c6aecf |
||
---|---|---|
.. | ||
source | ||
Makefile | ||
pom.xml |