From 9d46a998d0d39bb8099cbd6b21fbd4fbcb0744f5 Mon Sep 17 00:00:00 2001 From: dkumbhar Date: Wed, 25 Mar 2020 14:14:45 +0000 Subject: [PATCH] fix for https://review.opendev.org/#/c/71462 Change-Id: I27d3e66baf80c90e88002b56cb965fe2dac47557 --- .../services/nsxv_client.py | 16 +++++++++++++++- .../tests/scenario/test_new_case_coverage.py | 7 ++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/vmware_nsx_tempest_plugin/services/nsxv_client.py b/vmware_nsx_tempest_plugin/services/nsxv_client.py index 76595e9..4bacefc 100644 --- a/vmware_nsx_tempest_plugin/services/nsxv_client.py +++ b/vmware_nsx_tempest_plugin/services/nsxv_client.py @@ -351,7 +351,7 @@ class VSMClient(object): json_ver['patchVersion'], json_ver['buildNumber']]) def verify_default_snat_rule(self, name, routerip, cidr): - edge_id = self.get_edge(name)['id'] + edge_id = self.get_edge_name_substring(name)['id'] self.__set_api_version('4.0') self.__set_endpoint('/edges/%s/nat/config' % edge_id) response = self.get() @@ -362,6 +362,20 @@ class VSMClient(object): else: return False + def get_edge_name_substring(self, name): + """Get edge based on the name, which is OpenStack router. + Return edge if found, else return None. + """ + edges = self.get_all_edges() + edge = [e for e in edges if name[:-4] in e['name']] + if len(edge) == 0: + LOG.debug('Edge %s NOT found!' % name) + edge = None + else: + edge = edge[0] + LOG.debug('Found edge: %s' % edge) + return edge + def verify_spoofgaurd_policy_nw(self, network_id): """Retrieve existing scppfguard policy""" self.__set_api_version('4.0') diff --git a/vmware_nsx_tempest_plugin/tests/scenario/test_new_case_coverage.py b/vmware_nsx_tempest_plugin/tests/scenario/test_new_case_coverage.py index 7f76126..ebb39af 100644 --- a/vmware_nsx_tempest_plugin/tests/scenario/test_new_case_coverage.py +++ b/vmware_nsx_tempest_plugin/tests/scenario/test_new_case_coverage.py @@ -78,7 +78,7 @@ class TestNewCase(feature_manager.FeatureManager): cls.web_service_start_delay = 2.5 def _verify_router_gateway(self, router_id, exp_ext_gw_info=None): - show_body = self.admin_routers_client.show_router(router_id) + show_body = self.routers_client.show_router(router_id) actual_ext_gw_info = show_body['router']['external_gateway_info'] if exp_ext_gw_info is None: self.assertIsNone(actual_ext_gw_info) @@ -1763,7 +1763,8 @@ class TestNewCase(feature_manager.FeatureManager): self._verify_router_gateway( router['id'], {'network_id': CONF.network.public_network_id, 'enable_snat': True}) - rtr_ext = router['external_gateway_info'] - routerIP = rtr_ext['external_fixed_ips'][0]['ip_address'] + router_body = self.routers_client.show_router(router['id']) + router_ext = router_body['router']['external_gateway_info'] + routerIP = router_ext['external_fixed_ips'][0]['ip_address'] self.assertTrue(self.vsm.verify_default_snat_rule(name, routerIP, cidr_value))