puppet-glance/spec/classes/glance_backend_s3_spec.rb
Mykyta Karpin acd95e6a3a Add support of os_service_default fact in glance spec
This change adds possibility to use the os_service_default
   fact for configuration options that default to '<SERVICE DEFAULT>'.
   this change is done by analogy with cinder
   commit 667e6c0850672dbbf99381eb92468f95e5591913

Change-Id: Ie5c8909bcc1c9a6a7a9ab1b59eec4637751ffd74
2015-11-20 12:53:35 +00:00

118 lines
4.7 KiB
Ruby

require 'spec_helper'
describe 'glance::backend::s3' do
let :facts do
@default_facts.merge({
:osfamily => 'Debian',
})
end
let :params do
{
:access_key => 'access',
:secret_key => 'secret',
:host => 'host',
:bucket => 'bucket'
}
end
describe 'when default parameters' do
it 'configures glance-api.conf' do
is_expected.to contain_glance_api_config('glance_store/default_store').with_value('s3')
is_expected.to contain_glance_api_config('glance_store/s3_store_access_key').with_value('access')
is_expected.to contain_glance_api_config('glance_store/s3_store_secret_key').with_value('secret')
is_expected.to contain_glance_api_config('glance_store/s3_store_host').with_value('host')
is_expected.to contain_glance_api_config('glance_store/s3_store_bucket').with_value('bucket')
is_expected.to contain_glance_api_config('glance_store/s3_store_bucket_url_format').with_value('subdomain')
is_expected.to contain_glance_api_config('glance_store/s3_store_create_bucket_on_put').with_value('false')
is_expected.to contain_glance_api_config('glance_store/s3_store_large_object_size').with_value('100')
is_expected.to contain_glance_api_config('glance_store/s3_store_large_object_chunk_size').with_value('10')
is_expected.to contain_glance_api_config('glance_store/s3_store_object_buffer_dir').with_value(nil)
is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('10')
end
end
describe 'when overriding parameters' do
let :params do
{
:access_key => 'access2',
:secret_key => 'secret2',
:host => 'host2',
:bucket => 'bucket2',
:bucket_url_format => 'path',
:create_bucket_on_put => true,
:large_object_size => 200,
:large_object_chunk_size => 20,
:object_buffer_dir => '/tmp',
:thread_pools => 20,
:default_store => false
}
end
it 'configures glance-api.conf' do
is_expected.to contain_glance_api_config('glance_store/s3_store_access_key').with_value('access2')
is_expected.to contain_glance_api_config('glance_store/s3_store_secret_key').with_value('secret2')
is_expected.to contain_glance_api_config('glance_store/s3_store_host').with_value('host2')
is_expected.to contain_glance_api_config('glance_store/s3_store_bucket').with_value('bucket2')
is_expected.to contain_glance_api_config('glance_store/s3_store_bucket_url_format').with_value('path')
is_expected.to contain_glance_api_config('glance_store/s3_store_create_bucket_on_put').with_value('true')
is_expected.to contain_glance_api_config('glance_store/s3_store_large_object_size').with_value('200')
is_expected.to contain_glance_api_config('glance_store/s3_store_large_object_chunk_size').with_value('20')
is_expected.to contain_glance_api_config('glance_store/s3_store_object_buffer_dir').with_value('/tmp')
is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('20')
is_expected.to_not contain_glance_api_config('glance_store/default_store')
end
end
describe 'with invalid bucket_url_format' do
let :params do
{
:access_key => 'access',
:secret_key => 'secret',
:host => 'host',
:bucket => 'bucket',
:bucket_url_format => 'invalid'
}
end
it 'throws errors' do
is_expected.to raise_error(Puppet::Error, /glance::backend::s3::bucket_url_format must be either "subdomain" or "path"/)
end
end
describe 'with invalid large_object_chunk_size' do
let :params do
{
:access_key => 'access',
:secret_key => 'secret',
:host => 'host',
:bucket => 'bucket',
:large_object_chunk_size => 1
}
end
it 'throws error' do
is_expected.to raise_error(Puppet::Error, /glance::backend::s3::large_object_chunk_size must be an integer >= 5/)
end
end
describe 'with non-integer large_object_chunk_size' do
let :params do
{
:access_key => 'access',
:secret_key => 'secret',
:host => 'host',
:bucket => 'bucket',
:large_object_chunk_size => 'string'
}
end
it 'throws error' do
is_expected.to raise_error(Puppet::Error, /glance::backend::s3::large_object_chunk_size must be an integer >= 5/)
end
end
end