2 describe 'nova::compute::libvirt' do
5 "include nova\ninclude nova::compute"
8 describe 'on debian platforms' do
10 { :osfamily => 'Debian' }
13 describe 'with default parameters' do
15 it { should contain_class('nova::params')}
17 it { should contain_package('nova-compute-kvm').with(
19 :before => 'Package[nova-compute]',
20 :tag => ['openstack', 'nova']
23 it { should contain_package('libvirt').with(
24 :name => 'libvirt-bin',
28 it { should contain_service('libvirt').with(
29 :name => 'libvirt-bin',
32 :provider => 'upstart',
33 :require => 'Package[libvirt]',
34 :before => 'Service[nova-compute]'
37 it { should contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
38 it { should contain_nova_config('libvirt/virt_type').with_value('kvm')}
39 it { should contain_nova_config('libvirt/cpu_mode').with_value('host-model')}
40 it { should contain_nova_config('libvirt/disk_cachemodes').with_ensure('absent')}
41 it { should contain_nova_config('libvirt/inject_password').with_value(false)}
42 it { should contain_nova_config('libvirt/inject_key').with_value(false)}
43 it { should contain_nova_config('libvirt/inject_partition').with_value(-2)}
44 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('127.0.0.1')}
45 it { should contain_nova_config('DEFAULT/remove_unused_base_images').with_ensure('absent')}
46 it { should contain_nova_config('DEFAULT/remove_unused_original_minimum_age_seconds').with_ensure('absent')}
47 it { should contain_nova_config('libvirt/remove_unused_kernels').with_ensure('absent')}
48 it { should contain_nova_config('libvirt/remove_unused_resized_minimum_age_seconds').with_ensure('absent')}
51 describe 'with params' do
53 { :libvirt_virt_type => 'qemu',
54 :vncserver_listen => '0.0.0.0',
55 :libvirt_cpu_mode => 'host-passthrough',
56 :libvirt_disk_cachemodes => ['file=directsync','block=none'],
57 :remove_unused_base_images => true,
58 :remove_unused_kernels => true,
59 :remove_unused_resized_minimum_age_seconds => 3600,
60 :remove_unused_original_minimum_age_seconds => 3600,
61 :libvirt_service_name => 'custom_service'
65 it { should contain_nova_config('libvirt/virt_type').with_value('qemu')}
66 it { should contain_nova_config('libvirt/cpu_mode').with_value('host-passthrough')}
67 it { should contain_nova_config('libvirt/disk_cachemodes').with_value('file=directsync,block=none')}
68 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
69 it { should contain_nova_config('DEFAULT/remove_unused_base_images').with_value(true)}
70 it { should contain_nova_config('DEFAULT/remove_unused_original_minimum_age_seconds').with_value(3600)}
71 it { should contain_nova_config('libvirt/remove_unused_kernels').with_value(true)}
72 it { should contain_nova_config('libvirt/remove_unused_resized_minimum_age_seconds').with_value(3600)}
73 it { should contain_service('libvirt').with(
74 :name => 'custom_service',
77 :require => 'Package[libvirt]',
78 :before => 'Service[nova-compute]'
82 describe 'with deprecated params' do
84 { :libvirt_type => 'qemu'
88 it { should contain_nova_config('libvirt/virt_type').with_value('qemu')}
91 describe 'with migration_support enabled' do
93 context 'with vncserver_listen set to 0.0.0.0' do
95 { :vncserver_listen => '0.0.0.0',
96 :migration_support => true }
99 it { should contain_class('nova::migration::libvirt')}
100 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
101 it { should contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') }
104 context 'with vncserver_listen set to ::0' do
106 { :vncserver_listen => '::0',
107 :migration_support => true }
110 it { should contain_class('nova::migration::libvirt')}
111 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('::0')}
112 it { should contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') }
115 context 'with vncserver_listen not set to 0.0.0.0' do
117 { :vncserver_listen => '127.0.0.1',
118 :migration_support => true }
121 it { expect { should contain_class('nova::compute::libvirt') }.to \
122 raise_error(Puppet::Error, /For migration support to work, you MUST set vncserver_listen to '0.0.0.0' or '::0'/) }
125 context 'with custom libvirt service name on Debian plateforms' do
127 { :libvirt_service_name => 'libvirtd',
128 :vncserver_listen => '0.0.0.0',
129 :migration_support => true }
131 it { should contain_file_line('/etc/default/libvirtd libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') }
138 describe 'on rhel platforms' do
140 { :operatingsystem => 'RedHat', :osfamily => 'RedHat',
141 :operatingsystemrelease => 6.5 }
144 describe 'with default parameters' do
146 it { should contain_class('nova::params')}
148 it { should contain_package('libvirt').with(
153 it { should contain_service('libvirt').with(
156 :ensure => 'running',
158 :require => 'Package[libvirt]',
159 :before => 'Service[nova-compute]'
161 it { should contain_service('messagebus').with(
162 :ensure => 'running',
164 :before => 'Service[libvirt]',
168 describe 'on rhel 7' do
170 super().merge(:operatingsystemrelease => 7.0)
173 it { should contain_service('libvirt').with(
177 it { should contain_service('messagebus').with(
182 it { should contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
183 it { should contain_nova_config('libvirt/virt_type').with_value('kvm')}
184 it { should contain_nova_config('libvirt/inject_password').with_value(false)}
185 it { should contain_nova_config('libvirt/inject_key').with_value(false)}
186 it { should contain_nova_config('libvirt/inject_partition').with_value(-2)}
187 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('127.0.0.1')}
188 it { should contain_nova_config('DEFAULT/remove_unused_base_images').with_ensure('absent')}
189 it { should contain_nova_config('DEFAULT/remove_unused_original_minimum_age_seconds').with_ensure('absent')}
190 it { should contain_nova_config('libvirt/remove_unused_kernels').with_ensure('absent')}
191 it { should contain_nova_config('libvirt/remove_unused_resized_minimum_age_seconds').with_ensure('absent')}
194 describe 'with params' do
196 { :libvirt_virt_type => 'qemu',
197 :vncserver_listen => '0.0.0.0',
198 :remove_unused_base_images => true,
199 :remove_unused_kernels => true,
200 :remove_unused_resized_minimum_age_seconds => 3600,
201 :remove_unused_original_minimum_age_seconds => 3600
205 it { should contain_nova_config('libvirt/virt_type').with_value('qemu')}
206 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
207 it { should contain_nova_config('DEFAULT/remove_unused_base_images').with_value(true)}
208 it { should contain_nova_config('DEFAULT/remove_unused_original_minimum_age_seconds').with_value(3600)}
209 it { should contain_nova_config('libvirt/remove_unused_kernels').with_value(true)}
210 it { should contain_nova_config('libvirt/remove_unused_resized_minimum_age_seconds').with_value(3600)}
213 describe 'with deprecated params' do
215 { :libvirt_type => 'qemu'
219 it { should contain_nova_config('libvirt/virt_type').with_value('qemu')}
222 describe 'with migration_support enabled' do
224 context 'with vncserver_listen set to 0.0.0.0' do
226 { :vncserver_listen => '0.0.0.0',
227 :migration_support => true }
230 it { should contain_class('nova::migration::libvirt')}
231 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('0.0.0.0')}
234 context 'with vncserver_listen not set to 0.0.0.0' do
236 { :vncserver_listen => '127.0.0.1',
237 :migration_support => true }
240 it { expect { should contain_class('nova::compute::libvirt') }.to \
241 raise_error(Puppet::Error, /For migration support to work, you MUST set vncserver_listen to '0.0.0.0'/) }
245 describe 'with default parameters on Fedora' do
247 { :operatingsystem => 'Fedora', :osfamily => 'RedHat' }
250 it { should contain_class('nova::params')}
252 it { should contain_package('libvirt').with(
257 it { should contain_service('libvirt').with(
260 :ensure => 'running',
262 :require => 'Package[libvirt]',
263 :before => 'Service[nova-compute]'
266 it { should contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
267 it { should contain_nova_config('libvirt/virt_type').with_value('kvm')}
268 it { should contain_nova_config('DEFAULT/vncserver_listen').with_value('127.0.0.1')}