Changes for MDProxy policy in tempest for backend verification
Change-Id: Ic9fc9dfbf53b1f01848acb86b85e87edc7acf343
This commit is contained in:
parent
5b6a2e4d36
commit
cb72eb07bd
|
@ -19,6 +19,7 @@ from tempest.lib import decorators
|
|||
|
||||
from vmware_nsx_tempest_plugin.common import constants
|
||||
from vmware_nsx_tempest_plugin.lib import feature_manager
|
||||
from vmware_nsx_tempest_plugin.services import nsxp_client
|
||||
from vmware_nsx_tempest_plugin.services import nsxv3_client
|
||||
|
||||
CONF = config.CONF
|
||||
|
@ -59,6 +60,9 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
CONF.nsxv3.nsx_manager,
|
||||
CONF.nsxv3.nsx_user,
|
||||
CONF.nsxv3.nsx_password)
|
||||
cls.nsxp_client = nsxp_client.NSXPClient(CONF.nsxv3.nsx_manager,
|
||||
CONF.nsxv3.nsx_user,
|
||||
CONF.nsxv3.nsx_password)
|
||||
|
||||
def _verify_md(self, md_url, expected_value="",
|
||||
sub_result=None, ssh_client=None):
|
||||
|
@ -97,58 +101,81 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
expected_value=instance_name + ".novalocal",
|
||||
ssh_client=ssh_client)
|
||||
|
||||
def verify_md_proxy_logical_ports_on_backend(self, tenant_id, network_id):
|
||||
def verify_md_proxy_logical_ports_on_backend(self, tenant_id, network):
|
||||
md_counter = 0
|
||||
logical_ports = self.nsx.get_os_logical_ports()
|
||||
for port_index in range(len(logical_ports)):
|
||||
if "attachment" in logical_ports[port_index]:
|
||||
if logical_ports[port_index]["attachment"][
|
||||
"attachment_type"] == "METADATA_PROXY":
|
||||
if logical_ports[port_index][
|
||||
"tags"][0]["tag"] == network_id:
|
||||
msg = "MDproxy logical port does not "\
|
||||
"have proper tenant "\
|
||||
"id!!!"
|
||||
network_name = network["name"]
|
||||
network_id = network["id"]
|
||||
if CONF.network.backend == 'nsxp':
|
||||
logical_switch = self.nsxp_client.get_logical_switch(network_name,
|
||||
network_id)
|
||||
switch_id = str(logical_switch["id"])
|
||||
mdproxy_path = logical_switch['metadata_proxy_paths']
|
||||
md_proxy_uuid = str(mdproxy_path[0].split("/")[-1])
|
||||
if mdproxy_path is None:
|
||||
raise ValueError('MDPorxy is not attached to logical switch')
|
||||
display_name = "infra|%s|%s|md-proxy-attach-port" % (switch_id,
|
||||
md_proxy_uuid)
|
||||
logical_ports = self.nsx.get_logical_ports()
|
||||
for port_index in range(len(logical_ports)):
|
||||
if "attachment" in logical_ports[port_index]:
|
||||
if logical_ports[port_index]["attachment"][
|
||||
"attachment_type"] == "METADATA_PROXY":
|
||||
if logical_ports[port_index]["display_name"] == \
|
||||
display_name:
|
||||
md_counter += 1
|
||||
else:
|
||||
logical_ports = self.nsx.get_os_logical_ports()
|
||||
for port_index in range(len(logical_ports)):
|
||||
if "attachment" in logical_ports[port_index]:
|
||||
if logical_ports[port_index]["attachment"][
|
||||
"attachment_type"] == "METADATA_PROXY":
|
||||
if logical_ports[port_index][
|
||||
"tags"][0]["tag"] == network_id:
|
||||
msg = "MDproxy logical port does not "\
|
||||
"have proper tenant "\
|
||||
"id!!!"
|
||||
self.assertEqual(
|
||||
tenant_id, logical_ports[port_index]["tags"][
|
||||
1]["tag"], msg)
|
||||
md_counter += 1
|
||||
msg1 = "Admin state of MDProxy logical port is DOWN!!!"
|
||||
msg2 = "LS name does not start with mdproxy!!!"
|
||||
msg3 = "MDproxy logical port does not have any auto " \
|
||||
"tag!"
|
||||
msg4 = "MDproxy logical port does not have scope " \
|
||||
"tag as os-neutron-net-id!!!"
|
||||
msg5 = "MDproxy logical port does not have scope " \
|
||||
"tag as os-project-id!!!"
|
||||
msg6 = "MDproxy logical port does not have scope " \
|
||||
"tag as os-project-name!!!"
|
||||
msg7 = "MDproxy logical port does not have scope " \
|
||||
"tag as os-api-version!!!"
|
||||
self.assertEqual(
|
||||
tenant_id, logical_ports[port_index]["tags"][1][
|
||||
"tag"], msg)
|
||||
md_counter += 1
|
||||
msg1 = "Admin state of MDProxy logical port is DOWN!!!"
|
||||
msg2 = "LS name does not start with mdproxy!!!"
|
||||
msg3 = "MDproxy logical port does not have any auto tag!!!"
|
||||
msg4 = "MDproxy logical port does not have scope tag as " \
|
||||
"os-neutron-net-id!!!"
|
||||
msg5 = "MDproxy logical port does not have scope tag as " \
|
||||
"os-project-id!!!"
|
||||
msg6 = "MDproxy logical port does not have scope tag as " \
|
||||
"os-project-name!!!"
|
||||
msg7 = "MDproxy logical port does not have scope tag as " \
|
||||
"os-api-version!!!"
|
||||
self.assertEqual(
|
||||
"UP", logical_ports[port_index]["admin_state"], msg1)
|
||||
self.assertIn("mdproxy-",
|
||||
logical_ports[port_index]["display_name"],
|
||||
msg2)
|
||||
self.assertNotEqual(
|
||||
0,
|
||||
len(logical_ports[port_index]["tags"]),
|
||||
msg3)
|
||||
self.assertEqual(
|
||||
"os-neutron-net-id",
|
||||
logical_ports[port_index]["tags"][0]["scope"],
|
||||
msg4)
|
||||
self.assertEqual(
|
||||
"os-project-id",
|
||||
logical_ports[port_index]["tags"][1]["scope"],
|
||||
msg5)
|
||||
self.assertEqual(
|
||||
"os-project-name",
|
||||
logical_ports[port_index]["tags"][2]["scope"],
|
||||
msg6)
|
||||
self.assertEqual(
|
||||
"os-api-version",
|
||||
logical_ports[port_index]["tags"][3]["scope"],
|
||||
msg7)
|
||||
"UP", logical_ports[port_index]["admin_state"],
|
||||
msg1)
|
||||
self.assertIn("mdproxy-",
|
||||
logical_ports[port_index]
|
||||
["display_name"], msg2)
|
||||
self.assertNotEqual(
|
||||
0,
|
||||
len(logical_ports[port_index]["tags"]),
|
||||
msg3)
|
||||
self.assertEqual(
|
||||
"os-neutron-net-id",
|
||||
logical_ports[port_index]["tags"][0]["scope"],
|
||||
msg4)
|
||||
self.assertEqual(
|
||||
"os-project-id",
|
||||
logical_ports[port_index]["tags"][1]["scope"],
|
||||
msg5)
|
||||
self.assertEqual(
|
||||
"os-project-name",
|
||||
logical_ports[port_index]["tags"][2]["scope"],
|
||||
msg6)
|
||||
self.assertEqual(
|
||||
"os-api-version",
|
||||
logical_ports[port_index]["tags"][3]["scope"],
|
||||
msg7)
|
||||
self.assertNotEqual(0, md_counter, "No logical port found for MD "
|
||||
"proxy!!!")
|
||||
|
||||
|
@ -193,9 +220,10 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
self.verify_metadata_in_detail(
|
||||
instance=self.topology_servers["server_mdproxy_1"],
|
||||
ssh_client=ssh_client, floatingip=fip, fixed_ip=fixed_ip)
|
||||
|
||||
tenant_id = self.topology_networks["network_mdproxy"]["tenant_id"]
|
||||
network_id = self.topology_networks["network_mdproxy"]["id"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network_id)
|
||||
network = self.topology_networks["network_mdproxy"]["id"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network)
|
||||
|
||||
@decorators.idempotent_id("e9a93161-d852-414d-aa55-36d465ea45df")
|
||||
@utils.services("compute", "network")
|
||||
|
@ -226,8 +254,8 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
instance=self.topology_servers["server_mdproxy_1"],
|
||||
ssh_client=ssh_client, floatingip=fip, fixed_ip=fixed_ip)
|
||||
tenant_id = self.topology_networks["network_mdproxy"]["tenant_id"]
|
||||
network_id = self.topology_networks["network_mdproxy"]["id"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network_id)
|
||||
network = self.topology_networks["network_mdproxy"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network)
|
||||
|
||||
@decorators.skip_because(bug="2004971")
|
||||
@decorators.idempotent_id("fce2acc8-b850-40fe-bf02-958dd3cd4343")
|
||||
|
@ -266,9 +294,9 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
# Deploy topology without tier1 router
|
||||
self.deploy_mdproxy_topology_2()
|
||||
tenant_id = self.topology_networks["network_mdproxy"]["tenant_id"]
|
||||
network_id = self.topology_networks["network_mdproxy"]["id"]
|
||||
network = self.topology_networks["network_mdproxy"]
|
||||
# Verify MDProxy logical ports on Backend
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network_id)
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network)
|
||||
|
||||
@decorators.idempotent_id("cc8d2ab8-0bea-4e32-bf80-c9c46a7612b7")
|
||||
@decorators.attr(type=["negative"])
|
||||
|
@ -313,8 +341,8 @@ class TestMDProxy(feature_manager.FeatureManager):
|
|||
ssh_client=ssh_client_2, floatingip=fip_2, fixed_ip=fixed_ip_2)
|
||||
# Verify Metadata on backend
|
||||
tenant_id = self.topology_networks["network_mdproxy"]["tenant_id"]
|
||||
network_id = self.topology_networks["network_mdproxy"]["id"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network_id)
|
||||
network = self.topology_networks["network_mdproxy"]
|
||||
self.verify_md_proxy_logical_ports_on_backend(tenant_id, network)
|
||||
|
||||
@decorators.idempotent_id("eae21afc-50ea-42e5-9c49-2ee38cee9f06")
|
||||
@utils.services("compute", "network")
|
||||
|
|
Loading…
Reference in New Issue