puppet-cinder/spec/defines/cinder_backend_iscsi_spec.rb
Emilien Macchi 642aa03111 Allow to manage Cinder Volume types from backends
manage_volume_type is a new parameter present in every Cinder backend.
When set to True, it will manage the Cinder Volume type for the backend.
For backward compatibility, it is set to False by default.

Change-Id: I193b8e517f5804a1bce5bf472f2ca6242414354f
2016-08-11 09:15:44 -04:00

106 lines
2.8 KiB
Ruby

require 'spec_helper'
describe 'cinder::backend::iscsi' do
let(:title) {'hippo'}
let :req_params do {
:iscsi_ip_address => '127.0.0.2',
:iscsi_helper => 'tgtadm',
}
end
let :facts do
OSDefaults.get_facts({:osfamily => 'Debian'})
end
let :params do
req_params
end
let :iser_params do
{:iscsi_protocol => 'iser'}
end
let :volumes_dir_params do
{:volumes_dir => '/etc/cinder/volumes'}
end
describe 'with default params' do
it 'should configure iscsi driver' do
is_expected.to contain_cinder_config('hippo/volume_backend_name').with(
:value => 'hippo')
is_expected.to contain_cinder_config('hippo/volume_driver').with(
:value => 'cinder.volume.drivers.lvm.LVMVolumeDriver')
is_expected.to contain_cinder_config('hippo/iscsi_ip_address').with(
:value => '127.0.0.2')
is_expected.to contain_cinder_config('hippo/iscsi_helper').with(
:value => 'tgtadm')
is_expected.to contain_cinder_config('hippo/volume_group').with(
:value => '<SERVICE DEFAULT>')
is_expected.to contain_cinder_config('hippo/volumes_dir').with(
:value => '/var/lib/cinder/volumes')
is_expected.to contain_cinder_config('hippo/iscsi_protocol').with(
:value => '<SERVICE DEFAULT>')
end
end
describe 'with iser protocol' do
before :each do
params.merge!(iser_params)
end
it 'should configure iscsi driver with iser protocol' do
is_expected.to contain_cinder_config('hippo/iscsi_protocol').with(
:value => 'iser')
end
end
describe 'with non-default $volumes_dir' do
before :each do
params.merge!(volumes_dir_params)
end
it 'should configure iscsi driver with /etc/cinder/volumes as volumes_dir' do
is_expected.to contain_cinder_config('hippo/volumes_dir').with(
:value => '/etc/cinder/volumes'
)
end
end
describe 'iscsi backend with cinder type' do
before :each do
params.merge!({:manage_volume_type => true})
end
it 'should create type with properties' do
should contain_cinder_type('hippo').with(:ensure => :present, :properties => ['volume_backend_name=hippo'])
end
end
describe 'iscsi backend with additional configuration' do
before :each do
params.merge!({:extra_options => {'hippo/param1' => {'value' => 'value1'}}})
end
it 'configure iscsi backend with additional configuration' do
is_expected.to contain_cinder_config('hippo/param1').with({
:value => 'value1',
})
end
end
describe 'with RedHat' do
let :facts do
OSDefaults.get_facts({:osfamily => 'RedHat'})
end
it { is_expected.to contain_file_line('cinder include').with(
:line => 'include /var/lib/cinder/volumes/*',
:path => '/etc/tgt/targets.conf'
) }
end
end