Test connectivity after migration of the server with trunk

Verify that server with VLAN aware port can be correctly
migrated to another compute node. The original issue has
been mentioned in the following bugzilla

+ Fixed the issue when security group rule that allows icmp
traffic is not removed after the test

https://bugzilla.redhat.com/show_bug.cgi?id=1694624

Change-Id: I519e2685dbc9d0ae0011b7b9f8a04c705f31ef3b
This commit is contained in:
Alex Katz 2020-03-05 11:31:19 +02:00
parent 7729b6afac
commit baf14a5d92

View File

@ -39,7 +39,7 @@ ServerWithTrunkPort = collections.namedtuple(
class TrunkTest(base.BaseTempestTestCase):
credentials = ['primary']
credentials = ['primary', 'admin']
force_tenant_isolation = False
@classmethod
@ -279,12 +279,73 @@ class TrunkTest(base.BaseTempestTestCase):
should_succeed=False)
# allow intra-security-group traffic
self.create_pingable_secgroup_rule(self.security_group['id'])
sg_rule = self.create_pingable_secgroup_rule(self.security_group['id'])
self.addCleanup(
self.os_primary.network_client.delete_security_group_rule,
sg_rule['id'])
self.check_remote_connectivity(
vm1.ssh_client,
vm2.subport['fixed_ips'][0]['ip_address'],
servers=[vm1, vm2])
@testtools.skipUnless(CONF.compute_feature_enabled.cold_migration,
'Cold migration is not available.')
@testtools.skipUnless(CONF.compute.min_compute_nodes > 1,
'Less than 2 compute nodes, skipping multinode '
'tests.')
@testtools.skipUnless(
(CONF.neutron_plugin_options.advanced_image_ref or
CONF.neutron_plugin_options.default_image_is_advanced),
"Advanced image is required to run this test.")
@decorators.attr(type='slow')
@decorators.idempotent_id('ecd7de30-1c90-4280-b97c-1bed776d5d07')
def test_trunk_vm_migration(self):
'''Test connectivity after migration of the server with trunk
A successfully migrated server shows a VERIFY_RESIZE status that
requires confirmation. Need to reconfigure VLAN interface on server
side after migration is finished as the configuration doesn't survive
the reboot.
'''
vlan_tag = 10
vlan_network = self.create_network()
vlan_subnet = self.create_subnet(vlan_network)
sg_rule = self.create_pingable_secgroup_rule(self.security_group['id'])
self.addCleanup(
self.os_primary.network_client.delete_security_group_rule,
sg_rule['id'])
use_advanced_image = (
not CONF.neutron_plugin_options.default_image_is_advanced)
servers = {}
for role in ['migrate', 'connection_test']:
servers[role] = self._create_server_with_trunk_port(
subport_network=vlan_network,
segmentation_id=vlan_tag,
use_advanced_image=use_advanced_image)
for role in ['migrate', 'connection_test']:
self.wait_for_server_active(servers[role].server)
self._configure_vlan_subport(vm=servers[role],
vlan_tag=vlan_tag,
vlan_subnet=vlan_subnet)
self.check_remote_connectivity(
servers['connection_test'].ssh_client,
servers['migrate'].subport['fixed_ips'][0]['ip_address'])
client = self.os_admin.compute.ServersClient()
client.migrate_server(servers['migrate'].server['id'])
self.wait_for_server_status(servers['migrate'].server,
'VERIFY_RESIZE')
client.confirm_resize_server(servers['migrate'].server['id'])
self._configure_vlan_subport(vm=servers['migrate'],
vlan_tag=vlan_tag,
vlan_subnet=vlan_subnet)
self.check_remote_connectivity(
servers['connection_test'].ssh_client,
servers['migrate'].subport['fixed_ips'][0]['ip_address'])
@testtools.skipUnless(
(CONF.neutron_plugin_options.advanced_image_ref or
CONF.neutron_plugin_options.default_image_is_advanced),
@ -318,7 +379,10 @@ class TrunkTest(base.BaseTempestTestCase):
self.wait_for_server_active(vm.server)
# allow ICMP traffic
self.create_pingable_secgroup_rule(self.security_group['id'])
sg_rule = self.create_pingable_secgroup_rule(self.security_group['id'])
self.addCleanup(
self.os_primary.network_client.delete_security_group_rule,
sg_rule['id'])
# Ping from trunk_network_server to normal_network_server
# via parent port