puppet-nova/spec/classes/nova_compute_xenserver_spec.rb

136 lines
8.7 KiB
Ruby

require 'spec_helper'
describe 'nova::compute::xenserver' do
let :params do
{ :connection_url => 'https://127.0.0.1',
:connection_username => 'root',
:connection_password => 'passw0rd' }
end
let :optional_params do
{ :ovs_integration_bridge => 'xapi1',
:agent_timeout => '30',
:agent_version_timeout => '300',
:agent_resetnetwork_timeout => '60',
:agent_path => '/usr/sbin/xe-update-guest-attrs',
:disable_agent => 'false',
:use_agent_default => 'false',
:login_timeout => '10',
:connection_concurrent => '5',
:vhd_coalesce_poll_interval => '5.0',
:check_host => 'true',
:vhd_coalesce_max_attempts => '20',
:sr_base_path => '/var/run/sr-mount',
:target_host => '127.0.0.1',
:target_port => '3260',
:iqn_prefix => 'iqn.2010-10.org.openstack',
:remap_vbd_dev => 'false',
:remap_vbd_dev_prefix => 'sd',
:torrent_base_url => 'http://127.0.0.1/',
:torrent_seed_chance => '1.0',
:torrent_seed_duration => '3600',
:torrent_max_last_accessed => '86400',
:torrent_listen_port_start => '6881',
:torrent_listen_port_end => '6891',
:torrent_download_stall_cutoff => '600',
:torrent_max_seeder_processes_per_host => '1',
:use_join_force => 'true',
:cache_images => 'all',
:image_compression_level => '1',
:default_os_type => 'linux',
:block_device_creation_timeout => '10',
:max_kernel_ramdisk_size => '16777216',
:sr_matching_filter => 'default-sr:true',
:sparse_copy => 'true',
:num_vbd_unplug_retries => '10',
:torrent_images => 'none',
:ipxe_network_name => 'public',
:ipxe_boot_menu_url => 'http://127.0.0.1/',
:ipxe_mkisofs_cmd => 'mkisofs',
:running_timeout => '10',
:vif_driver => 'nova.virt.xenapi.vif.XenAPIBridgeDriver',
:image_upload_handler => 'nova.virt.xenapi.image.glance.GlanceStore',
:introduce_vdi_retry_wait => '20' }
end
context 'with required parameters' do
it 'configures xenapi in nova.conf' do
is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('xenapi.XenAPIDriver')
is_expected.to contain_nova_config('xenserver/connection_url').with_value(params[:connection_url])
is_expected.to contain_nova_config('xenserver/connection_username').with_value(params[:connection_username])
is_expected.to contain_nova_config('xenserver/connection_password').with_value(params[:connection_password])
end
it 'installs xenapi with pip' do
is_expected.to contain_package('xenapi').with(
:ensure => 'present',
:provider => 'pip'
)
end
end
context 'with overridden parameters' do
before do
params.merge!({:compute_driver => 'xenapi.FoobarDriver'})
end
it 'configures xenapi in nova.conf' do
is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('xenapi.FoobarDriver')
end
end
context 'with optional parameters' do
before :each do
params.merge!(optional_params)
end
it 'configures xenapi in nova.conf' do
is_expected.to contain_nova_config('xenserver/ovs_integration_bridge').with_value(params[:ovs_integration_bridge])
is_expected.to contain_nova_config('xenserver/agent_timeout').with_value(params[:agent_timeout])
is_expected.to contain_nova_config('xenserver/agent_version_timeout').with_value(params[:agent_version_timeout])
is_expected.to contain_nova_config('xenserver/agent_resetnetwork_timeout').with_value(params[:agent_resetnetwork_timeout])
is_expected.to contain_nova_config('xenserver/agent_path').with_value(params[:agent_path])
is_expected.to contain_nova_config('xenserver/disable_agent').with_value(params[:disable_agent])
is_expected.to contain_nova_config('xenserver/use_agent_default').with_value(params[:use_agent_default])
is_expected.to contain_nova_config('xenserver/login_timeout').with_value(params[:login_timeout])
is_expected.to contain_nova_config('xenserver/connection_concurrent').with_value(params[:connection_concurrent])
is_expected.to contain_nova_config('xenserver/vhd_coalesce_poll_interval').with_value(params[:vhd_coalesce_poll_interval])
is_expected.to contain_nova_config('xenserver/check_host').with_value(params[:check_host])
is_expected.to contain_nova_config('xenserver/vhd_coalesce_max_attempts').with_value(params[:vhd_coalesce_max_attempts])
is_expected.to contain_nova_config('xenserver/sr_base_path').with_value(params[:sr_base_path])
is_expected.to contain_nova_config('xenserver/target_host').with_value(params[:target_host])
is_expected.to contain_nova_config('xenserver/target_port').with_value(params[:target_port])
is_expected.to contain_nova_config('xenserver/iqn_prefix').with_value(params[:iqn_prefix])
is_expected.to contain_nova_config('xenserver/remap_vbd_dev').with_value(params[:remap_vbd_dev])
is_expected.to contain_nova_config('xenserver/remap_vbd_dev_prefix').with_value(params[:remap_vbd_dev_prefix])
is_expected.to contain_nova_config('xenserver/torrent_base_url').with_value(params[:torrent_base_url])
is_expected.to contain_nova_config('xenserver/torrent_seed_chance').with_value(params[:torrent_seed_chance])
is_expected.to contain_nova_config('xenserver/torrent_seed_duration').with_value(params[:torrent_seed_duration])
is_expected.to contain_nova_config('xenserver/torrent_max_last_accessed').with_value(params[:torrent_max_last_accessed])
is_expected.to contain_nova_config('xenserver/torrent_listen_port_start').with_value(params[:torrent_listen_port_start])
is_expected.to contain_nova_config('xenserver/torrent_listen_port_end').with_value(params[:torrent_listen_port_end])
is_expected.to contain_nova_config('xenserver/torrent_download_stall_cutoff').with_value(params[:torrent_download_stall_cutoff])
is_expected.to contain_nova_config('xenserver/torrent_max_seeder_processes_per_host').with_value(params[:torrent_max_seeder_processes_per_host])
is_expected.to contain_nova_config('xenserver/use_join_force').with_value(params[:use_join_force])
is_expected.to contain_nova_config('xenserver/cache_images').with_value(params[:cache_images])
is_expected.to contain_nova_config('xenserver/image_compression_level').with_value(params[:image_compression_level])
is_expected.to contain_nova_config('xenserver/default_os_type').with_value(params[:default_os_type])
is_expected.to contain_nova_config('xenserver/block_device_creation_timeout').with_value(params[:block_device_creation_timeout])
is_expected.to contain_nova_config('xenserver/max_kernel_ramdisk_size').with_value(params[:max_kernel_ramdisk_size])
is_expected.to contain_nova_config('xenserver/sr_matching_filter').with_value(params[:sr_matching_filter])
is_expected.to contain_nova_config('xenserver/sparse_copy').with_value(params[:sparse_copy])
is_expected.to contain_nova_config('xenserver/num_vbd_unplug_retries').with_value(params[:num_vbd_unplug_retries])
is_expected.to contain_nova_config('xenserver/torrent_images').with_value(params[:torrent_images])
is_expected.to contain_nova_config('xenserver/ipxe_network_name').with_value(params[:ipxe_network_name])
is_expected.to contain_nova_config('xenserver/ipxe_boot_menu_url').with_value(params[:ipxe_boot_menu_url])
is_expected.to contain_nova_config('xenserver/ipxe_mkisofs_cmd').with_value(params[:ipxe_mkisofs_cmd])
is_expected.to contain_nova_config('xenserver/running_timeout').with_value(params[:running_timeout])
is_expected.to contain_nova_config('xenserver/vif_driver').with_value(params[:vif_driver])
is_expected.to contain_nova_config('xenserver/image_upload_handler').with_value(params[:image_upload_handler])
is_expected.to contain_nova_config('xenserver/introduce_vdi_retry_wait').with_value(params[:introduce_vdi_retry_wait])
end
end
end