]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Ensure that session is rolled back on bulk creates
authorarmando-migliaccio <armamig@gmail.com>
Thu, 13 Feb 2014 19:36:34 +0000 (11:36 -0800)
committerThomas Goirand <thomas@goirand.fr>
Thu, 13 Mar 2014 07:20:21 +0000 (15:20 +0800)
During bulk creates, the session is began explicitely;
ensure that it gets rolled back before re-raising in
order to avoid triggering InvalidRequestError
exceptions when the session is reused.

Partial-bug: 1244757

Change-Id: I797faeec2ca5374620db905599ab6e6f04fdcabd

neutron/db/db_base_plugin_v2.py

index d6adceef3692922d8e459d9268ffd07ad11d5fa7..503994bf8c2ec5b2f7f2b26e83e230059d165c73 100644 (file)
@@ -902,11 +902,11 @@ class NeutronDbPluginV2(neutron_plugin_base_v2.NeutronPluginBaseV2,
                 objects.append(obj_creator(context, item))
             context.session.commit()
         except Exception:
+            context.session.rollback()
             with excutils.save_and_reraise_exception():
                 LOG.error(_("An exception occurred while creating "
                             "the %(resource)s:%(item)s"),
                           {'resource': resource, 'item': item})
-                context.session.rollback()
         return objects
 
     def create_network_bulk(self, context, networks):