Merge "Fix libvirtd_opts when using systemd"

This commit is contained in:
Jenkins 2016-05-23 12:00:06 +00:00 committed by Gerrit Code Review
commit 2b5cf16ec2
3 changed files with 52 additions and 11 deletions

View File

@ -159,9 +159,17 @@ class nova::migration::libvirt(
} }
} }
if $::operatingsystem == 'Ubuntu' and versioncmp($::operatingsystemmajrelease, '16') >= 0 {
# If systemd is being used then libvirtd is already being launched correctly and
# adding -d causes a second consecutive start to fail which causes puppet to fail.
$libvirtd_opts = 'libvirtd_opts="-l"'
} else {
$libvirtd_opts = 'libvirtd_opts="-d -l"'
}
file_line { "/etc/default/${::nova::compute::libvirt::libvirt_service_name} libvirtd opts": file_line { "/etc/default/${::nova::compute::libvirt::libvirt_service_name} libvirtd opts":
path => "/etc/default/${::nova::compute::libvirt::libvirt_service_name}", path => "/etc/default/${::nova::compute::libvirt::libvirt_service_name}",
line => 'libvirtd_opts="-d -l"', line => $libvirtd_opts,
match => 'libvirtd_opts=', match => 'libvirtd_opts=',
tag => 'libvirt-file_line', tag => 'libvirt-file_line',
} }

View File

@ -1,4 +1,5 @@
require 'spec_helper' require 'spec_helper'
require 'puppet/util/package'
describe 'nova::compute::libvirt' do describe 'nova::compute::libvirt' do
let :pre_condition do let :pre_condition do
@ -6,6 +7,14 @@ describe 'nova::compute::libvirt' do
end end
shared_examples 'debian-nova-compute-libvirt' do shared_examples 'debian-nova-compute-libvirt' do
let(:libvirt_options) do
if facts[:operatingsystem] == 'Ubuntu' and Puppet::Util::Package.versioncmp(facts[:operatingsystemmajrelease], '16') >= 0
'libvirtd_opts="-l"'
else
'libvirtd_opts="-d -l"'
end
end
describe 'with default parameters' do describe 'with default parameters' do
it { is_expected.to contain_class('nova::params')} it { is_expected.to contain_class('nova::params')}
@ -127,7 +136,7 @@ describe 'nova::compute::libvirt' do
it { is_expected.to contain_class('nova::migration::libvirt')} it { is_expected.to contain_class('nova::migration::libvirt')}
it { is_expected.to contain_nova_config('vnc/vncserver_listen').with_value('0.0.0.0')} it { is_expected.to contain_nova_config('vnc/vncserver_listen').with_value('0.0.0.0')}
it { is_expected.to contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') } it { is_expected.to contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => libvirt_options) }
it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tls').with(:line => "listen_tls = 0") } it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tls').with(:line => "listen_tls = 0") }
it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tcp').with(:line => "listen_tcp = 1") } it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tcp').with(:line => "listen_tcp = 1") }
it { is_expected.not_to contain_file_line('/etc/libvirt/libvirtd.conf auth_tls')} it { is_expected.not_to contain_file_line('/etc/libvirt/libvirtd.conf auth_tls')}
@ -142,7 +151,7 @@ describe 'nova::compute::libvirt' do
it { is_expected.to contain_class('nova::migration::libvirt')} it { is_expected.to contain_class('nova::migration::libvirt')}
it { is_expected.to contain_nova_config('vnc/vncserver_listen').with_value('::0')} it { is_expected.to contain_nova_config('vnc/vncserver_listen').with_value('::0')}
it { is_expected.to contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') } it { is_expected.to contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => libvirt_options) }
it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tls').with(:line => "listen_tls = 0") } it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tls').with(:line => "listen_tls = 0") }
it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tcp').with(:line => "listen_tcp = 1") } it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf listen_tcp').with(:line => "listen_tcp = 1") }
it { is_expected.not_to contain_file_line('/etc/libvirt/libvirtd.conf auth_tls')} it { is_expected.not_to contain_file_line('/etc/libvirt/libvirtd.conf auth_tls')}
@ -165,7 +174,7 @@ describe 'nova::compute::libvirt' do
:vncserver_listen => '0.0.0.0', :vncserver_listen => '0.0.0.0',
:migration_support => true } :migration_support => true }
end end
it { is_expected.to contain_file_line('/etc/default/libvirtd libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') } it { is_expected.to contain_file_line('/etc/default/libvirtd libvirtd opts').with(:line => libvirt_options) }
end end
end end
@ -337,19 +346,21 @@ describe 'nova::compute::libvirt' do
@default_facts.merge({ @default_facts.merge({
:osfamily => 'Debian', :osfamily => 'Debian',
:operatingsystem => 'Debian', :operatingsystem => 'Debian',
:os_package_family => 'debian' :os_package_family => 'debian',
:operatingsystemmajrelease => '8'
}) })
end end
it_behaves_like 'debian-nova-compute-libvirt' it_behaves_like 'debian-nova-compute-libvirt'
end end
context 'on Debian platforms' do context 'on Ubuntu platforms' do
let (:facts) do let (:facts) do
@default_facts.merge({ @default_facts.merge({
:osfamily => 'Debian', :osfamily => 'Debian',
:operatingsystem => 'Ubuntu', :operatingsystem => 'Ubuntu',
:os_package_family => 'ubuntu' :os_package_family => 'ubuntu',
:operatingsystemmajrelease => '16.04'
}) })
end end
@ -360,7 +371,7 @@ describe 'nova::compute::libvirt' do
let (:facts) do let (:facts) do
@default_facts.merge({ @default_facts.merge({
:osfamily => 'RedHat', :osfamily => 'RedHat',
:os_package_type => 'rpm' :os_package_type => 'rpm',
}) })
end end

View File

@ -119,9 +119,27 @@ describe 'nova::migration::libvirt' do
end end
end end
context 'on Debian platforms' do # TODO (degorenko): switch to on_supported_os function when we got Xenial
context 'on Debian platforms with Ubuntu release 16' do
let :facts do let :facts do
@default_facts.merge({ :osfamily => 'Debian' }) @default_facts.merge({
:osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:operatingsystemmajrelease => '16'
})
end
it_configures 'nova migration with libvirt'
it { is_expected.to contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-l"') }
end
context 'on Debian platforms release' do
let :facts do
@default_facts.merge({
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:operatingsystemmajrelease => '8'
})
end end
it_configures 'nova migration with libvirt' it_configures 'nova migration with libvirt'
@ -130,7 +148,11 @@ describe 'nova::migration::libvirt' do
context 'on RedHat platforms' do context 'on RedHat platforms' do
let :facts do let :facts do
@default_facts.merge({ :osfamily => 'RedHat' }) @default_facts.merge({
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemmajrelease => '7.0'
})
end end
it_configures 'nova migration with libvirt' it_configures 'nova migration with libvirt'