diff --git a/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py b/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py index 244af4f5e..c53025cd1 100644 --- a/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py +++ b/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py @@ -664,8 +664,8 @@ class LoadBalancerPluginDbv2(base_db.CommonDbMixin, pool_db.session_persistence = s_p context.session.add(pool_db) - context.session.flush() - return data_models.Pool.from_sqlalchemy_model(pool_db) + context.session.refresh(pool_db.loadbalancer) + return self.get_pool(context, pool_db.id) def update_pool(self, context, id, pool): with context.session.begin(subtransactions=True): diff --git a/neutron_lbaas/services/loadbalancer/plugin.py b/neutron_lbaas/services/loadbalancer/plugin.py index b6c2b8100..4f0e07155 100644 --- a/neutron_lbaas/services/loadbalancer/plugin.py +++ b/neutron_lbaas/services/loadbalancer/plugin.py @@ -710,9 +710,9 @@ class LoadBalancerPluginv2(loadbalancerv2.LoadBalancerPluginBaseV2, self.db.update_loadbalancer_provisioning_status( context, db_pool.loadbalancer_id) raise exc - - db_pool.listeners = self.db.get_listeners( - context, filters={'default_pool_id': [db_pool.id]}) + # Reload the pool from the DB to re-populate pool.listeners + # before calling the driver + db_pool = self.db.get_pool(context, db_pool.id) driver = self._get_driver_for_loadbalancer( context, db_pool.loadbalancer_id) self._call_driver_operation(context, driver.pool.create, db_pool)