From d9eea51187ddd9b951e9943030724489f1c21a26 Mon Sep 17 00:00:00 2001 From: Hemanth Ravi Date: Sun, 30 Mar 2014 17:48:21 -0700 Subject: [PATCH] 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 --- neutron/plugins/oneconvergence/plugin.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) 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) + 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) + #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