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 125ca18a97..9eaa4c75a8 100644 --- a/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_p/implementation/listener_mgr.py @@ -91,11 +91,14 @@ class EdgeListenerManagerFromDict(base_mgr.NsxpLoadbalancerBaseManager): lb_vip_address = floating_ips[0]['floating_ip_address'] else: lb_vip_address = listener['loadbalancer']['vip_address'] + lb_service = lb_utils.get_lb_nsx_lb_service( + self.core_plugin.nsxpolicy, listener['loadbalancer_id']) + kwargs = {'virtual_server_id': listener['id'], 'ip_address': lb_vip_address, 'ports': [listener['protocol_port']], 'application_profile_id': listener['id'], - 'lb_service_id': listener['loadbalancer_id'], + 'lb_service_id': lb_service['id'], 'description': listener.get('description')} if vs_name: kwargs['name'] = vs_name 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 bbc57d6ea8..b7c5d984ad 100644 --- a/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py +++ b/vmware_nsx/tests/unit/services/lbaas/test_nsxp_driver.py @@ -734,6 +734,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.vs_client, 'create_or_overwrite' ) as mock_add_virtual_server: mock_get_floatingips.return_value = [] @@ -775,6 +778,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.vs_client, 'create_or_overwrite' ) as mock_add_virtual_server: mock_get_floatingips.return_value = [] @@ -811,6 +817,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.vs_client, 'create_or_overwrite' ) as mock_add_virtual_server: mock_get_floatingips.return_value = [] @@ -872,6 +881,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): return_value=(None, None)), \ mock.patch.object(self.vs_client, 'create_or_overwrite' ) as mock_add_virtual_server,\ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.vs_client, 'get', return_value={}),\ mock.patch.object(self.edge_driver.listener, '_get_pool_tags'),\ mock.patch.object(self.pp_cookie_client, 'create_or_overwrite' @@ -925,6 +937,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.vs_client, 'create_or_overwrite' ) as mock_add_virtual_server: mock_get_floatingips.return_value = [] @@ -961,6 +976,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): with mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.core_plugin, 'get_floatingips' ) as mock_get_floatingips: mock_get_floatingips.return_value = [] @@ -983,6 +1001,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): with mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.core_plugin, 'get_floatingips' ) as mock_get_floatingips: mock_get_floatingips.return_value = [] @@ -1008,6 +1029,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): mock.patch.object(self.core_plugin, 'get_waf_profile_path_and_mode', return_value=(None, None)), \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.edge_driver.listener, '_get_pool_tags'),\ mock.patch.object(self.vs_client, 'get', return_value={}),\ mock.patch.object(self.vs_client, 'update', @@ -1058,6 +1082,9 @@ class TestEdgeLbaasV2Listener(BaseTestEdgeLbaasV2): ) as mock_create_pp, \ mock.patch.object(self.pp_generic_client, 'delete' ) as mock_delete_pp, \ + mock.patch.object(self.core_plugin.nsxpolicy, 'search_by_tags', + return_value={'results': [ + {'id': LB_SERVICE_ID}]}),\ mock.patch.object(self.core_plugin, 'get_floatingips' ) as mock_get_floatingips, \ mock.patch.object(self.edge_driver.listener,