diff --git a/vmware_nsx_tempest_plugin/lib/feature_manager.py b/vmware_nsx_tempest_plugin/lib/feature_manager.py index 8c6c97d..4c3354d 100644 --- a/vmware_nsx_tempest_plugin/lib/feature_manager.py +++ b/vmware_nsx_tempest_plugin/lib/feature_manager.py @@ -488,6 +488,25 @@ class FeatureManager(traffic_manager.IperfManager, raise RuntimeError(_("NSX bridge profile information is null")) return [(x.get("id"), x.get("display_name")) for x in response] + def nsx_transport_zone_info(self): + """Collect the Vlan Transport zone. + + :return: nsx vlan transport zone. + + """ + response = self.nsx_client.get_transport_zones() + if len(response) == 0: + raise RuntimeError(_("NSX bridge profile information is null")) + vlan_zone = None + for zone in response: + if zone['transport_type'] == 'VLAN': + if zone['display_name'] == 'transportzone2': + vlan_zone = zone['id'] + if vlan_zone: + return vlan_zone + else: + raise RuntimeError(_("Vlan Transport zone not found")) + def create_l2gw_connection(self, l2gwc_param): """Creates L2GWC and return the response. diff --git a/vmware_nsx_tempest_plugin/services/nsx_client.py b/vmware_nsx_tempest_plugin/services/nsx_client.py index 1497010..5c339c4 100644 --- a/vmware_nsx_tempest_plugin/services/nsx_client.py +++ b/vmware_nsx_tempest_plugin/services/nsx_client.py @@ -50,6 +50,10 @@ class NSXClient(object): return self.nsx.get_bridge_profile_info( *args, **kwargs) + def get_transport_zones(self): + if self.backend == "nsxv3": + return self.nsx.get_transport_zones() + def get_qos_switching_profile(self, policy_name): """ Retrieve attributes of a given nsx switching profile diff --git a/vmware_nsx_tempest_plugin/tests/nsxv3/api/test_l2_gateway.py b/vmware_nsx_tempest_plugin/tests/nsxv3/api/test_l2_gateway.py index 917dca9..8eb9951 100644 --- a/vmware_nsx_tempest_plugin/tests/nsxv3/api/test_l2_gateway.py +++ b/vmware_nsx_tempest_plugin/tests/nsxv3/api/test_l2_gateway.py @@ -66,7 +66,6 @@ class L2GatewayTest(L2GatewayBase): """ Test l2 gateway operations. """ - @decorators.attr(type="nsxv3") @decorators.idempotent_id("e5e3a089-602c-496e-8c17-4ef613266924") def test_l2_gateway_create_without_vlan(self): @@ -80,7 +79,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -107,7 +107,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1]} @@ -146,7 +147,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1, self.VLAN_2]} @@ -184,7 +186,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -216,7 +219,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -260,7 +264,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -305,7 +310,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1, self.VLAN_2]} @@ -350,7 +356,8 @@ class L2GatewayTest(L2GatewayBase): cluster_info = self.nsx_bridge_cluster_info() else: cluster_info = self.nsx_bridge_profile_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1]} @@ -389,8 +396,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1]} @@ -423,8 +434,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1, self.VLAN_2]} @@ -457,8 +472,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -495,8 +514,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -541,8 +564,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -611,8 +638,12 @@ class L2GatewayConnectionTest(L2GatewayBase): list_rsp = list_rsp["l2_gateway_connections"] l2gwc_ids = [item.get("id") for item in list_rsp if "id" in item] - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -663,8 +694,12 @@ class L2GatewayConnectionTest(L2GatewayBase): """ LOG.info("Testing l2_gateway_connection_delete api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -700,8 +735,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -728,8 +767,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [self.VLAN_1]} @@ -756,8 +799,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): LOG.info("Testing test_l2_gateway_connection_create api") self.deploy_l2gateway_topology() non_exist_l2gw_uuid = NON_EXIST_UUID - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -778,8 +825,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): """ LOG.info("Testing test_l2_gateway_connection_create api") non_exist_network_uuid = NON_EXIST_UUID - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name} l2gw_param = [device_1] @@ -799,8 +850,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): """ LOG.info("Testing l2_gateway_create api with segmentation ID") invalid_seg_id = 20000 - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [invalid_seg_id]} @@ -817,8 +872,12 @@ class L2GatewayConnectionNegative(L2GatewayBase): """ LOG.info("Testing l2_gateway_create api with segmentation ID") invalid_seg_id = 2.45 - cluster_info = self.nsx_bridge_cluster_info() - device_name, interface_name = cluster_info[0][0], cluster_info[0][1] + if CONF.nsxv3.bridge_cluster: + cluster_info = self.nsx_bridge_cluster_info() + else: + cluster_info = self.nsx_bridge_profile_info() + transport_zone = self.nsx_transport_zone_info() + device_name, interface_name = cluster_info[0][0], transport_zone l2gw_name = data_utils.rand_name(constants.L2GW) device_1 = {"dname": device_name, "iname": interface_name, "vlans": [invalid_seg_id]}