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:
parent
486b832ede
commit
5cfd4237ac
@ -80,13 +80,15 @@
|
|||||||
LIBVIRT_TYPE: kvm
|
LIBVIRT_TYPE: kvm
|
||||||
TEMPEST_PLUGINS: /opt/stack/whitebox-tempest-plugin
|
TEMPEST_PLUGINS: /opt/stack/whitebox-tempest-plugin
|
||||||
WHITEBOX_PRIVKEY_PATH: /home/tempest/.ssh/id_rsa
|
WHITEBOX_PRIVKEY_PATH: /home/tempest/.ssh/id_rsa
|
||||||
|
WHITEBOX_CPU_MODEL: kvm64
|
||||||
|
WHITEBOX_CPU_MODEL_EXTRA_FLAGS: vme,+ssse3,-mmx
|
||||||
devstack_local_conf:
|
devstack_local_conf:
|
||||||
post-config:
|
post-config:
|
||||||
$NOVA_CONF:
|
$NOVA_CONF:
|
||||||
libvirt:
|
libvirt:
|
||||||
cpu_mode: custom
|
cpu_mode: custom
|
||||||
cpu_models: kvm64
|
cpu_models: kvm64
|
||||||
cpu_model_extra_flags: ssse3
|
cpu_model_extra_flags: vme,+ssse3,-mmx
|
||||||
virt_type: kvm
|
virt_type: kvm
|
||||||
rx_queue_size: 1024
|
rx_queue_size: 1024
|
||||||
group-vars:
|
group-vars:
|
||||||
@ -100,7 +102,7 @@
|
|||||||
libvirt:
|
libvirt:
|
||||||
cpu_mode: custom
|
cpu_mode: custom
|
||||||
cpu_models: kvm64
|
cpu_models: kvm64
|
||||||
cpu_model_extra_flags: ssse3
|
cpu_model_extra_flags: vme,+ssse3,-mmx
|
||||||
virt_type: kvm
|
virt_type: kvm
|
||||||
rx_queue_size: 1024
|
rx_queue_size: 1024
|
||||||
tempest:
|
tempest:
|
||||||
|
@ -3,8 +3,6 @@ NOVA_FILTERS="$NOVA_FILTERS,NUMATopologyFilter"
|
|||||||
WHITEBOX_AVAILABLE_CINDER_STORAGE=${WHITEBOX_AVAILABLE_CINDER_STORAGE:-24}
|
WHITEBOX_AVAILABLE_CINDER_STORAGE=${WHITEBOX_AVAILABLE_CINDER_STORAGE:-24}
|
||||||
SMT_HOSTS=${SMT_HOSTS:-''}
|
SMT_HOSTS=${SMT_HOSTS:-''}
|
||||||
WHITEBOX_FILE_BACKED_MEMORY_SIZE=${WHITEBOX_FILE_BACKED_MEMORY_SIZE:-8192}
|
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_RX_QUEUE_SIZE=${WHITEBOX_RX_QUEUE_SIZE:-1024}
|
||||||
|
|
||||||
WHITEBOX_NOVA_COMPUTE_CONFIG_PATH=${WHITEBOX_NOVA_COMPUTE_CONFIG_PATH:-/etc/nova/nova-cpu.conf}
|
WHITEBOX_NOVA_COMPUTE_CONFIG_PATH=${WHITEBOX_NOVA_COMPUTE_CONFIG_PATH:-/etc/nova/nova-cpu.conf}
|
||||||
|
@ -33,7 +33,6 @@ class CpuModelExtraFlagsTest(base.BaseWhiteboxComputeTest):
|
|||||||
def test_cpu_model_extra_flags(self):
|
def test_cpu_model_extra_flags(self):
|
||||||
server = self.create_test_server(wait_until="ACTIVE")
|
server = self.create_test_server(wait_until="ACTIVE")
|
||||||
root = self.get_server_xml(server['id'])
|
root = self.get_server_xml(server['id'])
|
||||||
|
|
||||||
# Assert that the correct CPU model as well as the proper flags
|
# Assert that the correct CPU model as well as the proper flags
|
||||||
# are correctly defined in the instance XML
|
# are correctly defined in the instance XML
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
@ -41,6 +40,19 @@ class CpuModelExtraFlagsTest(base.BaseWhiteboxComputeTest):
|
|||||||
root.find("cpu[@mode='custom']/model").text,
|
root.find("cpu[@mode='custom']/model").text,
|
||||||
'Wrong CPU model defined in instance xml')
|
'Wrong CPU model defined in instance xml')
|
||||||
for flag in CONF.whitebox.cpu_model_extra_flags:
|
for flag in CONF.whitebox.cpu_model_extra_flags:
|
||||||
self.assertNotEmpty(
|
if flag.startswith('-'):
|
||||||
root.findall('cpu[@mode="custom"]/feature[@name="%s"]' % flag),
|
self.assertNotEmpty(
|
||||||
"Cannot find feature '%s' in the instance xml" % flag)
|
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('+'))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user