Merge "Add configuration for cpu model flags"

This commit is contained in:
Zuul 2018-07-16 17:08:45 +00:00 committed by Gerrit Code Review
commit 8b026f4bfd
5 changed files with 23 additions and 0 deletions

View File

@ -259,6 +259,11 @@ options:
Set to a named libvirt CPU model (see names listed in
/usr/share/libvirt/cpu_map.xml). Only has effect if cpu_mode='custom' and
virt_type='kvm|qemu'.
cpu-model-extra-flags:
type: string
default:
description: |
Space delimited list of specific CPU flags for libvirt.
# Storage config
libvirt-image-backend:
type: string

View File

@ -210,6 +210,10 @@ class NovaComputeLibvirtContext(context.OSContextGenerator):
if config('cpu-model'):
ctxt['cpu_model'] = config('cpu-model')
if config('cpu-model-extra-flags'):
ctxt['cpu_model_extra_flags'] = ', '.join(
config('cpu-model-extra-flags').split(' '))
if config('hugepages'):
ctxt['hugepages'] = True
ctxt['kvm_hugepages'] = 1

View File

@ -184,6 +184,9 @@ cpu_mode = {{ cpu_mode }}
{% if cpu_model -%}
cpu_model = {{ cpu_model }}
{% endif -%}
{% if cpu_model_extra_flags %}
cpu_model_extra_flags = {{ cpu_model_extra_flags }}
{% endif %}
{% if libvirt_images_type -%}
images_type = {{ libvirt_images_type }}
{% endif -%}

View File

@ -187,6 +187,9 @@ cpu_mode = {{ cpu_mode }}
{% if cpu_model -%}
cpu_model = {{ cpu_model }}
{% endif -%}
{% if cpu_model_extra_flags %}
cpu_model_extra_flags = {{ cpu_model_extra_flags }}
{% endif %}
{% if libvirt_images_type -%}
images_type = {{ libvirt_images_type }}
{% endif -%}

View File

@ -501,6 +501,14 @@ class NovaComputeContextTests(CharmTestCase):
self.assertEqual(context.nova_metadata_requirement(),
(True, None))
def test_nova_compute_extra_flags(self):
self.test_config.set('cpu-model-extra-flags', 'pcid vmx pdpe1gb')
self.lsb_release.return_value = {'DISTRIB_CODENAME': 'bionic'}
libvirt = context.NovaComputeLibvirtContext()
self.assertEqual(libvirt()['cpu_model_extra_flags'],
'pcid, vmx, pdpe1gb')
class SerialConsoleContextTests(CharmTestCase):