diff --git a/devstack/plugin.sh b/devstack/plugin.sh index ebaf8cb8..96dbee86 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -40,6 +40,7 @@ function configure { iniset $TEMPEST_CONFIG compute-feature-enabled rbd_download "$COMPUTE_FEATURE_RBD_DOWNLOAD" iniset $TEMPEST_CONFIG compute-feature-enabled uefi_secure_boot "$COMPUTE_FEATURE_UEFI_SECURE_BOOT" iniset $TEMPEST_CONFIG compute-feature-enabled vtpm_device_supported "$COMPUTE_FEATURE_VTPM_ENABLED" + iniset $TEMPEST_CONFIG compute-feature-enabled live_migrate_back_and_forth "$COMPUTE_FEATURE_LIVE_MIGRATE_BACK_AND_FORTH" } if [[ "$1" == "stack" ]]; then diff --git a/devstack/settings b/devstack/settings index cf250f1e..e5a13ca1 100644 --- a/devstack/settings +++ b/devstack/settings @@ -24,3 +24,4 @@ COMPUTE_FEATURE_VIRTIO_RNG=${COMPUTE_FEATURE_VIRTIO_RNG:-'True'} COMPUTE_FEATURE_RBD_DOWNLOAD=${COMPUTE_FEATURE_RBD_DOWNLOAD:-'False'} COMPUTE_FEATURE_UEFI_SECURE_BOOT=${COMPUTE_FEATURE_UEFI_SECURE_BOOT:-'True'} COMPUTE_FEATURE_VTPM_ENABLED=${COMPUTE_FEATURE_VTPM_ENABLED:-'True'} +COMPUTE_FEATURE_LIVE_MIGRATE_BACK_AND_FORTH=${COMPUTE_FEATURE_LIVE_MIGRATE_BACK_AND_FORTH:-'True'} diff --git a/whitebox_tempest_plugin/api/compute/test_sriov.py b/whitebox_tempest_plugin/api/compute/test_sriov.py index e21d2df0..90655c5c 100644 --- a/whitebox_tempest_plugin/api/compute/test_sriov.py +++ b/whitebox_tempest_plugin/api/compute/test_sriov.py @@ -748,34 +748,38 @@ class SRIOVMigration(SRIOVBase): 'after first migration should be 1 but instead ' 'is %s' % pci_allocated_count) - # Migrate server back to the original host - self.live_migrate(self.os_admin, server['id'], 'ACTIVE', - target_host=host) + if CONF.compute_feature_enabled.live_migrate_back_and_forth: + # Migrate server back to the original host + self.live_migrate(self.os_admin, server['id'], 'ACTIVE', + target_host=host) - # Again find the instance's network device element based on the mac - # address and binding:vnic_type from the port info provided by ports - # client - interface_xml_element = self._get_xml_interface_device( - server['id'], - port['port']['id'], - ) + # Again find the instance's network device element based on the + # mac address and binding:vnic_type from the port info provided by + # ports client + interface_xml_element = self._get_xml_interface_device( + server['id'], + port['port']['id'], + ) - # Confirm vlan tag in interface XML, dev_type, allocation status, and - # pci address information are correct in pci_devices table of openstack - # DB after second migration - self._validate_port_xml_vlan_tag(interface_xml_element, self.vlan_id) - self._verify_neutron_port_binding( - server['id'], - port['port']['id'] - ) + # Confirm vlan tag in interface XML, dev_type, allocation status, + # and pci address information are correct in pci_devices table of + # openstack DB after second migration + self._validate_port_xml_vlan_tag( + interface_xml_element, + self.vlan_id + ) + self._verify_neutron_port_binding( + server['id'], + port['port']['id'] + ) - # Confirm total port allocations still remains one after final - # migration - pci_allocated_count = self._get_pci_status_count( - pci_device_status_regex) - self.assertEqual(pci_allocated_count, 1, 'Total allocated pci devices ' - 'after second migration should be 1 but instead ' - 'is %s' % pci_allocated_count) + # Confirm total port allocations still remains one after final + # migration + pci_allocated_count = self._get_pci_status_count( + pci_device_status_regex) + self.assertEqual(pci_allocated_count, 1, 'Total allocated pci ' + 'devices after second migration should be 1 but ' + 'instead is %s' % pci_allocated_count) def test_sriov_direct_live_migration(self): """Verify sriov live migration using direct type ports