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
This commit is contained in:
parent
111d0b2852
commit
c672b0d567
|
@ -664,8 +664,8 @@ class LoadBalancerPluginDbv2(base_db.CommonDbMixin,
|
|||
pool_db.session_persistence = s_p
|
||||
|
||||
context.session.add(pool_db)
|
||||
context.session.refresh(pool_db.loadbalancer)
|
||||
return self.get_pool(context, pool_db.id)
|
||||
context.session.flush()
|
||||
return data_models.Pool.from_sqlalchemy_model(pool_db)
|
||||
|
||||
def update_pool(self, context, id, pool):
|
||||
with context.session.begin(subtransactions=True):
|
||||
|
|
|
@ -710,9 +710,9 @@ class LoadBalancerPluginv2(loadbalancerv2.LoadBalancerPluginBaseV2,
|
|||
self.db.update_loadbalancer_provisioning_status(
|
||||
context, db_pool.loadbalancer_id)
|
||||
raise exc
|
||||
# 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)
|
||||
|
||||
db_pool.listeners = self.db.get_listeners(
|
||||
context, filters={'default_pool_id': [db_pool.id]})
|
||||
driver = self._get_driver_for_loadbalancer(
|
||||
context, db_pool.loadbalancer_id)
|
||||
self._call_driver_operation(context, driver.pool.create, db_pool)
|
||||
|
|
Loading…
Reference in New Issue