Files
puppet-nova/spec/classes/nova_compute_libvirt_guests_spec.rb
Martin Schuppert 0e1da12265 Don't restart libvirt-guests on config change
When there is a config change the service gets notfied to be
restarted, which is not required as /usr/libexec/libvirt-guests.sh
sources /etc/sysconfig/libvirt-guests on each run. As a side
effect of the service restart, instances get stopped which is bad.

In addition manage_service was bound to the enabled parameter.
This introduces manage_service to be able to manage start/stop
independent from enabled parameter.

Change-Id: Icf52a2272601401c423ae07f7b10474bdc190574
Closes-Bug: #1849264
2019-10-22 15:34:43 +02:00

86 lines
2.3 KiB
Ruby

require 'spec_helper'
require 'puppet/util/package'
describe 'nova::compute::libvirt_guests' do
let :pre_condition do
"include nova\ninclude nova::compute"
end
shared_examples 'redhat-nova-compute-libvirt-guests' do
before do
facts.merge!({ :operatingsystem => 'RedHat', :osfamily => 'RedHat',
:operatingsystemrelease => 6.5,
:operatingsystemmajrelease => '6' })
end
describe 'with default parameters' do
it { is_expected.to contain_class('nova::params')}
it { is_expected.not_to contain_package('libvirt-client') }
it { is_expected.not_to contain_service('libvirt-guests') }
describe 'on rhel 7' do
before do
facts.merge!({
:operatingsystemrelease => 7.0,
:operatingsystemmajrelease => '7'
})
end
it { is_expected.to contain_service('libvirt-guests')}
end
end
describe 'with params' do
let :params do
{ :enabled => true,
}
end
it { is_expected.to contain_file_line('/etc/sysconfig/libvirt-guests ON_BOOT').with(:line => 'ON_BOOT=ignore') }
it { is_expected.to contain_file_line('/etc/sysconfig/libvirt-guests ON_SHUTDOWN').with(:line => "ON_SHUTDOWN=shutdown") }
it { is_expected.to contain_file_line('/etc/sysconfig/libvirt-guests SHUTDOWN_TIMEOUT').with(:line => "SHUTDOWN_TIMEOUT=300") }
it { is_expected.to contain_package('libvirt-guests').with(
:name => 'libvirt-client',
:ensure => 'present'
) }
it { is_expected.to contain_service('libvirt-guests').with(
:name => 'libvirt-guests',
:enable => true,
:ensure => 'running',
)}
end
context 'while not managing service state' do
let :params do
{ :enabled => false,
:manage_service => false,
}
end
it { is_expected.to contain_service('libvirt-guests').without_ensure }
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
case [:osfamily]
when 'RedHat'
let (:facts) do
facts.merge!(OSDefaults.get_facts({ :os_package_type => 'rpm' }))
end
it_behaves_like 'redhat-nova-compute-libvirt-guests'
end
end
end
end