Test allow disabling CPU flags

Implements test logic that validates disabling cpu flags within the
guest.

Related blueprint allow-disabling-cpu-flags
Depends-on: https://review.opendev.org/c/openstack/nova/+/774240
Change-Id: Idc8f0de7ca6d36abe236c3fe699c4bf8755ede49
This commit is contained in:
Artom Lifshitz 2021-02-17 06:27:45 -05:00 committed by James Parker
parent 486b832ede
commit 5cfd4237ac
3 changed files with 20 additions and 8 deletions

View File

@ -80,13 +80,15 @@
LIBVIRT_TYPE: kvm
TEMPEST_PLUGINS: /opt/stack/whitebox-tempest-plugin
WHITEBOX_PRIVKEY_PATH: /home/tempest/.ssh/id_rsa
WHITEBOX_CPU_MODEL: kvm64
WHITEBOX_CPU_MODEL_EXTRA_FLAGS: vme,+ssse3,-mmx
devstack_local_conf:
post-config:
$NOVA_CONF:
libvirt:
cpu_mode: custom
cpu_models: kvm64
cpu_model_extra_flags: ssse3
cpu_model_extra_flags: vme,+ssse3,-mmx
virt_type: kvm
rx_queue_size: 1024
group-vars:
@ -100,7 +102,7 @@
libvirt:
cpu_mode: custom
cpu_models: kvm64
cpu_model_extra_flags: ssse3
cpu_model_extra_flags: vme,+ssse3,-mmx
virt_type: kvm
rx_queue_size: 1024
tempest:

View File

@ -3,8 +3,6 @@ NOVA_FILTERS="$NOVA_FILTERS,NUMATopologyFilter"
WHITEBOX_AVAILABLE_CINDER_STORAGE=${WHITEBOX_AVAILABLE_CINDER_STORAGE:-24}
SMT_HOSTS=${SMT_HOSTS:-''}
WHITEBOX_FILE_BACKED_MEMORY_SIZE=${WHITEBOX_FILE_BACKED_MEMORY_SIZE:-8192}
WHITEBOX_CPU_MODEL=${WHITEBOX_CPU_MODEL:-kvm64}
WHITEBOX_CPU_MODEL_EXTRA_FLAGS=${WHITEBOX_CPU_MODEL_EXTRA_FLAGS:-ssse3}
WHITEBOX_RX_QUEUE_SIZE=${WHITEBOX_RX_QUEUE_SIZE:-1024}
WHITEBOX_NOVA_COMPUTE_CONFIG_PATH=${WHITEBOX_NOVA_COMPUTE_CONFIG_PATH:-/etc/nova/nova-cpu.conf}

View File

@ -33,7 +33,6 @@ class CpuModelExtraFlagsTest(base.BaseWhiteboxComputeTest):
def test_cpu_model_extra_flags(self):
server = self.create_test_server(wait_until="ACTIVE")
root = self.get_server_xml(server['id'])
# Assert that the correct CPU model as well as the proper flags
# are correctly defined in the instance XML
self.assertEqual(
@ -41,6 +40,19 @@ class CpuModelExtraFlagsTest(base.BaseWhiteboxComputeTest):
root.find("cpu[@mode='custom']/model").text,
'Wrong CPU model defined in instance xml')
for flag in CONF.whitebox.cpu_model_extra_flags:
self.assertNotEmpty(
root.findall('cpu[@mode="custom"]/feature[@name="%s"]' % flag),
"Cannot find feature '%s' in the instance xml" % flag)
if flag.startswith('-'):
self.assertNotEmpty(
root.findall(
'cpu[@mode="custom"]/'
'feature[@name="%s"][@policy="disable"]' %
flag.strip('-')),
"Disabled feature '%s' not found in the XML" %
flag.strip('-'))
else:
self.assertNotEmpty(
root.findall(
'cpu[@mode="custom"]/'
'feature[@name="%s"][@policy="require"]' %
flag.strip('+')),
"Required feature '%s' not found in the XML" %
flag.strip('+'))