diff --git a/vmware_nsx/services/lbaas/nsx_v/v2/pool_mgr.py b/vmware_nsx/services/lbaas/nsx_v/v2/pool_mgr.py index 581e731abe..3c74443583 100644 --- a/vmware_nsx/services/lbaas/nsx_v/v2/pool_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_v/v2/pool_mgr.py @@ -116,6 +116,12 @@ class EdgePoolManager(base_mgr.EdgeLoadbalancerBaseManager): try: with locking.LockManager.get_lock(edge_id): + # get the configured monitor-id + org_edge_pool = self.vcns.get_pool(edge_id, edge_pool_id)[1] + monitor_id = org_edge_pool.get('monitorId') + if monitor_id: + edge_pool['monitorId'] = monitor_id + self.vcns.update_pool(edge_id, edge_pool_id, edge_pool) self.lbv2_driver.pool.successful_completion(context, new_pool) diff --git a/vmware_nsx/tests/unit/nsx_v/test_edge_loadbalancer_driver_v2.py b/vmware_nsx/tests/unit/nsx_v/test_edge_loadbalancer_driver_v2.py index 6b9abf91b8..2c0769d2b2 100644 --- a/vmware_nsx/tests/unit/nsx_v/test_edge_loadbalancer_driver_v2.py +++ b/vmware_nsx/tests/unit/nsx_v/test_edge_loadbalancer_driver_v2.py @@ -401,14 +401,19 @@ class TestEdgeLbaasV2Pool(BaseTestEdgeLbaasV2): mock.patch.object(nsxv_db, 'get_nsxv_lbaas_pool_binding' ) as mock_get_pool_binding,\ mock.patch.object(self.edge_driver.vcns, 'update_pool' - ) as mock_upd_pool: + ) as mock_upd_pool,\ + mock.patch.object(self.edge_driver.vcns, 'get_pool' + ) as mock_get_pool: mock_get_lb_binding.return_value = LB_BINDING mock_get_pool_binding.return_value = POOL_BINDING - + fake_edge = EDGE_POOL_DEF.copy() + fake_edge['monitorId'] = 'monitor-7' + mock_get_pool.return_value = (None, fake_edge) self.edge_driver.pool.update(self.context, self.pool, new_pool) edge_pool_def = EDGE_POOL_DEF.copy() edge_pool_def['algorithm'] = 'leastconn' + edge_pool_def['monitorId'] = 'monitor-7' mock_upd_pool.assert_called_with( LB_EDGE_ID, EDGE_POOL_ID, edge_pool_def) mock_successful_completion = (