diff --git a/vmware_nsx/services/lbaas/nsx_p/implementation/pool_mgr.py b/vmware_nsx/services/lbaas/nsx_p/implementation/pool_mgr.py index a5a262b4a5..3a92250f2f 100644 --- a/vmware_nsx/services/lbaas/nsx_p/implementation/pool_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_p/implementation/pool_mgr.py @@ -240,4 +240,9 @@ class EdgePoolManagerFromDict(base_mgr.NsxpLoadbalancerBaseManager): completor(success=True) def delete_cascade(self, context, pool, completor): + # Listeners were already deleted + pool['listeners'] = [] + pool['listener'] = None + pool['listener_id'] = None + self.delete(context, pool, completor) diff --git a/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py b/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py index a2ed3b6e50..849088e515 100644 --- a/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py +++ b/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py @@ -1337,6 +1337,18 @@ class TestEdgeLbaasV2Pool(BaseTestEdgeLbaasV2): self.assertTrue(self.last_completor_called) self.assertTrue(self.last_completor_succees) + def test_delete_cascade(self): + self.reset_completor() + with mock.patch.object(self.pool_client, 'delete' + ) as mock_delete_pool: + self.edge_driver.pool.delete_cascade( + self.context, self.pool_dict, + self.completor) + + mock_delete_pool.assert_called_with(LB_POOL_ID) + self.assertTrue(self.last_completor_called) + self.assertTrue(self.last_completor_succees) + def test_delete_with_persistency(self): with mock.patch.object(self.vs_client, 'get' ) as mock_vs_get, \