Merge "Handle libvirt/cpu_model option"
This commit is contained in:
@@ -23,6 +23,12 @@
|
|||||||
# Defaults to 'host-model' if libvirt_virt_type is set to either
|
# Defaults to 'host-model' if libvirt_virt_type is set to either
|
||||||
# kvm or qemu, otherwise defaults to 'none'.
|
# kvm or qemu, otherwise defaults to 'none'.
|
||||||
#
|
#
|
||||||
|
# [*libvirt_cpu_model*]
|
||||||
|
# (optional) The 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".
|
||||||
|
# Defaults to undef
|
||||||
|
#
|
||||||
# [*libvirt_disk_cachemodes*]
|
# [*libvirt_disk_cachemodes*]
|
||||||
# (optional) A list of cachemodes for different disk types, e.g.
|
# (optional) A list of cachemodes for different disk types, e.g.
|
||||||
# ["file=directsync", "block=none"]
|
# ["file=directsync", "block=none"]
|
||||||
@@ -87,6 +93,7 @@ class nova::compute::libvirt (
|
|||||||
$vncserver_listen = '127.0.0.1',
|
$vncserver_listen = '127.0.0.1',
|
||||||
$migration_support = false,
|
$migration_support = false,
|
||||||
$libvirt_cpu_mode = false,
|
$libvirt_cpu_mode = false,
|
||||||
|
$libvirt_cpu_model = undef,
|
||||||
$libvirt_disk_cachemodes = [],
|
$libvirt_disk_cachemodes = [],
|
||||||
$libvirt_inject_password = false,
|
$libvirt_inject_password = false,
|
||||||
$libvirt_inject_key = false,
|
$libvirt_inject_key = false,
|
||||||
@@ -185,6 +192,22 @@ class nova::compute::libvirt (
|
|||||||
'libvirt/inject_partition': value => $libvirt_inject_partition;
|
'libvirt/inject_partition': value => $libvirt_inject_partition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# cpu_model param is only valid if cpu_mode=custom
|
||||||
|
# otherwise it should be commented out
|
||||||
|
if $libvirt_cpu_mode_real == 'custom' {
|
||||||
|
validate_string($libvirt_cpu_model)
|
||||||
|
nova_config {
|
||||||
|
'libvirt/cpu_model': value => $libvirt_cpu_model;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
nova_config {
|
||||||
|
'libvirt/cpu_model': ensure => absent;
|
||||||
|
}
|
||||||
|
if $libvirt_cpu_model {
|
||||||
|
warning('$libvirt_cpu_model requires that $libvirt_cpu_mode => "custom" and will be ignored')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if size($libvirt_disk_cachemodes) > 0 {
|
if size($libvirt_disk_cachemodes) > 0 {
|
||||||
nova_config {
|
nova_config {
|
||||||
'libvirt/disk_cachemodes': value => join($libvirt_disk_cachemodes, ',');
|
'libvirt/disk_cachemodes': value => join($libvirt_disk_cachemodes, ',');
|
||||||
|
@@ -37,6 +37,7 @@ describe 'nova::compute::libvirt' do
|
|||||||
it { is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
|
it { is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/virt_type').with_value('kvm')}
|
it { is_expected.to contain_nova_config('libvirt/virt_type').with_value('kvm')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('host-model')}
|
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('host-model')}
|
||||||
|
it { is_expected.to contain_nova_config('libvirt/cpu_model').with_ensure('absent')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/disk_cachemodes').with_ensure('absent')}
|
it { is_expected.to contain_nova_config('libvirt/disk_cachemodes').with_ensure('absent')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/inject_password').with_value(false)}
|
it { is_expected.to contain_nova_config('libvirt/inject_password').with_value(false)}
|
||||||
it { is_expected.to contain_nova_config('libvirt/inject_key').with_value(false)}
|
it { is_expected.to contain_nova_config('libvirt/inject_key').with_value(false)}
|
||||||
@@ -53,6 +54,7 @@ describe 'nova::compute::libvirt' do
|
|||||||
{ :libvirt_virt_type => 'qemu',
|
{ :libvirt_virt_type => 'qemu',
|
||||||
:vncserver_listen => '0.0.0.0',
|
:vncserver_listen => '0.0.0.0',
|
||||||
:libvirt_cpu_mode => 'host-passthrough',
|
:libvirt_cpu_mode => 'host-passthrough',
|
||||||
|
:libvirt_cpu_model => 'kvm64',
|
||||||
:libvirt_disk_cachemodes => ['file=directsync','block=none'],
|
:libvirt_disk_cachemodes => ['file=directsync','block=none'],
|
||||||
:remove_unused_base_images => true,
|
:remove_unused_base_images => true,
|
||||||
:remove_unused_kernels => true,
|
:remove_unused_kernels => true,
|
||||||
@@ -66,6 +68,7 @@ describe 'nova::compute::libvirt' do
|
|||||||
it { is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.FoobarDriver')}
|
it { is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.FoobarDriver')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/virt_type').with_value('qemu')}
|
it { is_expected.to contain_nova_config('libvirt/virt_type').with_value('qemu')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('host-passthrough')}
|
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('host-passthrough')}
|
||||||
|
it { is_expected.to contain_nova_config('libvirt/cpu_model').with_ensure('absent')}
|
||||||
it { is_expected.to contain_nova_config('libvirt/disk_cachemodes').with_value('file=directsync,block=none')}
|
it { is_expected.to contain_nova_config('libvirt/disk_cachemodes').with_value('file=directsync,block=none')}
|
||||||
it { is_expected.to contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
|
it { is_expected.to contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
|
||||||
it { is_expected.to contain_nova_config('DEFAULT/remove_unused_base_images').with_value(true)}
|
it { is_expected.to contain_nova_config('DEFAULT/remove_unused_base_images').with_value(true)}
|
||||||
@@ -81,6 +84,16 @@ describe 'nova::compute::libvirt' do
|
|||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'with custom cpu_mode' do
|
||||||
|
let :params do
|
||||||
|
{ :libvirt_cpu_mode => 'custom',
|
||||||
|
:libvirt_cpu_model => 'kvm64' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('custom')}
|
||||||
|
it { is_expected.to contain_nova_config('libvirt/cpu_model').with_value('kvm64')}
|
||||||
|
end
|
||||||
|
|
||||||
describe 'with migration_support enabled' do
|
describe 'with migration_support enabled' do
|
||||||
|
|
||||||
context 'with vncserver_listen set to 0.0.0.0' do
|
context 'with vncserver_listen set to 0.0.0.0' do
|
||||||
|
Reference in New Issue
Block a user