cookbook-openstack-compute/spec/libvirt_spec.rb

107 lines
2.8 KiB
Ruby

# encoding: UTF-8
require_relative 'spec_helper'
describe 'openstack-compute::libvirt' do
describe 'ubuntu' do
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
cached(:chef_run) { runner.converge(described_recipe) }
include_context 'compute_stubs'
it do
expect(chef_run).to upgrade_package %w(libvirt-bin python3-guestfs)
end
it 'does not create libvirt group and add to nova' do
expect(chef_run).not_to create_group 'libvirt'
end
it 'does not symlink qemu-kvm' do
expect(chef_run).not_to create_link '/usr/bin/qemu-system-x86_64'
end
it 'starts dbus' do
expect(chef_run).to start_service 'dbus'
end
it 'starts dbus on boot' do
expect(chef_run).to enable_service 'dbus'
end
it 'starts libvirt' do
expect(chef_run).to start_service 'libvirt-bin'
end
it 'starts libvirt on boot' do
expect(chef_run).to enable_service 'libvirt-bin'
end
it 'deletes default libvirt network' do
expect(chef_run).to run_execute('virsh net-destroy default')
end
describe '/etc/libvirt/libvirtd.conf' do
let(:file) { chef_run.template('/etc/libvirt/libvirtd.conf') }
it 'creates the /etc/libvirt/libvirtd.conf file' do
expect(chef_run).to create_template(file.name).with(
source: 'libvirtd.conf.erb',
owner: 'root',
group: 'root',
mode: '644'
)
end
it 'has proper processing controls' do
[
/^max_clients = 20$/,
/^max_workers = 20$/,
/^max_requests = 20$/,
/^max_client_requests = 5$/,
].each do |content|
expect(chef_run).to render_file(file.name).with_content(content)
end
end
it 'has unix_sock_rw_perms' do
expect(chef_run).to render_file(file.name).with_content(/^unix_sock_rw_perms = "0770"$/)
end
it 'notifies libvirt-bin restart' do
expect(file).to notify('service[libvirt-bin]').to(:restart)
end
end
describe '/etc/default/libvirtd' do
let(:file) { chef_run.template('/etc/default/libvirtd') }
it 'creates the /etc/default/libvirtd file' do
expect(chef_run).to create_template(file.name).with(
owner: 'root',
group: 'root',
mode: '644'
)
end
it 'template contents' do
[
/^start_libvirtd="yes"$/,
/^libvirtd_opts="-l"$/,
].each do |line|
expect(chef_run).to render_file(file.name).with_content(line)
end
end
it 'notifies libvirt-bin restart' do
expect(file).to notify('service[libvirt-bin]').to(:restart)
end
end
it 'does not create /etc/sysconfig/libvirtd' do
expect(chef_run).not_to create_template '/etc/sysconfig/libvirtd'
end
end
end