From: Hemanth Ravi Date: Mon, 31 Mar 2014 00:48:21 +0000 (-0700) Subject: Invoke _process_l3_create within plugin session X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=d9eea51187ddd9b951e9943030724489f1c21a26;p=openstack-build%2Fneutron-build.git Invoke _process_l3_create within plugin session _process_l3_create should be invoked with a plugin session, else externalnetworks table is not populated for networks with router:external=True. Added the missing plugin session. Change-Id: I09c49dea9474f91a70aef829c1596fbb9089d6cf Closes-Bug: #1299946 --- diff --git a/neutron/plugins/oneconvergence/plugin.py b/neutron/plugins/oneconvergence/plugin.py index daf85ee6d..e4aea6f90 100644 --- a/neutron/plugins/oneconvergence/plugin.py +++ b/neutron/plugins/oneconvergence/plugin.py @@ -185,17 +185,19 @@ class OneConvergencePluginV2(db_base_plugin_v2.NeutronDbPluginV2, network['network']['id'] = net['id'] - try: - neutron_net = super(OneConvergencePluginV2, - self).create_network(context, network) - - #following call checks whether the network is external or not and - #if it is external then adds this network to externalnetworks - #table of neutron db - self._process_l3_create(context, neutron_net, network['network']) - except nvsdexception.NVSDAPIException: - with excutils.save_and_reraise_exception(): - self.nvsdlib.delete_network(net) + with context.session.begin(subtransactions=True): + try: + neutron_net = super(OneConvergencePluginV2, + self).create_network(context, network) + + #following call checks whether the network is external or not + #and if it is external then adds this network to + #externalnetworks table of neutron db + self._process_l3_create(context, neutron_net, + network['network']) + except nvsdexception.NVSDAPIException: + with excutils.save_and_reraise_exception(): + self.nvsdlib.delete_network(net) return neutron_net