diff --git a/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py b/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py index 5d7dc7ac24..505e3b3d3a 100644 --- a/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py @@ -94,8 +94,13 @@ class EdgeListenerManagerFromDict(base_mgr.NsxpLoadbalancerBaseManager): kwargs['tags'] = tags if listener['connection_limit'] != -1: kwargs['max_concurrent_connections'] = listener['connection_limit'] - if listener['default_pool_id']: - kwargs['pool_id'] = listener['default_pool_id'] + if 'default_pool_id' in listener: + if listener['default_pool_id']: + kwargs['pool_id'] = listener['default_pool_id'] + else: + # Remove the default pool + kwargs['pool_id'] = '' + kwargs['lb_persistence_profile_id'] = '' if certificate: ssl_profile_binding = self._upload_certificate( listener['id'], listener['default_tls_container_id'], tags, diff --git a/vmware_nsx/services/lbaas/nsx_v3/implementation/listener_mgr.py b/vmware_nsx/services/lbaas/nsx_v3/implementation/listener_mgr.py index 7ba4f7da24..479f169890 100644 --- a/vmware_nsx/services/lbaas/nsx_v3/implementation/listener_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_v3/implementation/listener_mgr.py @@ -57,12 +57,18 @@ class EdgeListenerManagerFromDict(base_mgr.Nsxv3LoadbalancerBaseManager): if listener['connection_limit'] != -1: kwargs['max_concurrent_connections'] = \ listener['connection_limit'] - if listener['default_pool_id']: - pool_binding = nsx_db.get_nsx_lbaas_pool_binding( - context.session, listener['loadbalancer']['id'], - listener['default_pool_id']) - if pool_binding: - kwargs['pool_id'] = pool_binding.get('lb_pool_id') + if 'default_pool_id' in listener: + if listener['default_pool_id']: + pool_binding = nsx_db.get_nsx_lbaas_pool_binding( + context.session, listener['loadbalancer']['id'], + listener['default_pool_id']) + if pool_binding: + kwargs['pool_id'] = pool_binding.get('lb_pool_id') + else: + # Remove the default pool + kwargs['pool_id'] = None + kwargs['persistence_profile_id'] = '' + ssl_profile_binding = self._get_ssl_profile_binding( tags, certificate=certificate) if (listener['protocol'] == lb_const.LB_PROTOCOL_TERMINATED_HTTPS and 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 88bafcc32a..6adc896247 100644 --- a/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py +++ b/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py @@ -453,7 +453,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): name=mock.ANY, ports=[listener['protocol_port']], max_concurrent_connections=None, - virtual_server_id=listener_id) + virtual_server_id=listener_id, + pool_id='', + lb_persistence_profile_id='') self.assertTrue(self.last_completor_called) self.assertTrue(self.last_completor_succees) @@ -489,7 +491,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): name=mock.ANY, ports=[self.terminated_https_listener_dict['protocol_port']], max_concurrent_connections=None, - virtual_server_id=HTTPS_LISTENER_ID) + virtual_server_id=HTTPS_LISTENER_ID, + pool_id='', + lb_persistence_profile_id='') self.assertTrue(self.last_completor_called) self.assertTrue(self.last_completor_succees)