Browse Source

Updated "create_pool" method in plugin

Once the pool object is created in the DB and the listeners
are updated with the pool information, the updated listeners
are retrieved and populated into the pool object.

The DB method to create the pool now flushes the context to
retrieve an updated pool DB object at the end of the method,
instead of retrieving again the same object from the DB.

This is needed to make solve the Queens backport of
I32328c5206b9cd6fb8d8764c079f22b6ea8bfa9e.

Story: 2001962

Change-Id: Icf43952f6e5c5004a5c4d8d541b6efcb5d3ec50c
tags/14.0.0.0rc1
Rodolfo Alonso Hernandez 8 months ago
parent
commit
c672b0d567

+ 2
- 2
neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py View File

@@ -664,8 +664,8 @@ class LoadBalancerPluginDbv2(base_db.CommonDbMixin,
664 664
                 pool_db.session_persistence = s_p
665 665
 
666 666
             context.session.add(pool_db)
667
-        context.session.refresh(pool_db.loadbalancer)
668
-        return self.get_pool(context, pool_db.id)
667
+            context.session.flush()
668
+        return data_models.Pool.from_sqlalchemy_model(pool_db)
669 669
 
670 670
     def update_pool(self, context, id, pool):
671 671
         with context.session.begin(subtransactions=True):

+ 3
- 3
neutron_lbaas/services/loadbalancer/plugin.py View File

@@ -710,9 +710,9 @@ class LoadBalancerPluginv2(loadbalancerv2.LoadBalancerPluginBaseV2,
710 710
                 self.db.update_loadbalancer_provisioning_status(
711 711
                     context, db_pool.loadbalancer_id)
712 712
                 raise exc
713
-        # Reload the pool from the DB to re-populate pool.listeners
714
-        # before calling the driver
715
-        db_pool = self.db.get_pool(context, db_pool.id)
713
+
714
+        db_pool.listeners = self.db.get_listeners(
715
+            context, filters={'default_pool_id': [db_pool.id]})
716 716
         driver = self._get_driver_for_loadbalancer(
717 717
             context, db_pool.loadbalancer_id)
718 718
         self._call_driver_operation(context, driver.pool.create, db_pool)

Loading…
Cancel
Save