puppet-trove/spec/classes/trove_keystone_authtoken_spec.rb
ZhongShengping a54b81c779 Configure *_domain_name to Default by default
Keystone v2.0 API was removed so we have no choice but configuring
user_domain_name and project_domain_name otherwise it fallbacks to
Keystone v2.0 and it fails. This patch sets the default value so we make
sure Keystone v3 will be used out of the box for our users.

Change-Id: I4d2a5620e7a4dc5c5fddabd3da0299e0f2211102
2017-10-13 14:44:08 +08:00

145 lines
10 KiB
Ruby

require 'spec_helper'
describe 'trove::keystone::authtoken' do
let :params do
{ :password => 'trove_password', }
end
shared_examples 'trove authtoken' do
context 'with default parameters' do
it 'configure keystone_authtoken' do
is_expected.to contain_trove_config('keystone_authtoken/username').with_value('trove')
is_expected.to contain_trove_config('keystone_authtoken/password').with_value('trove_password')
is_expected.to contain_trove_config('keystone_authtoken/auth_url').with_value('http://localhost:35357')
is_expected.to contain_trove_config('keystone_authtoken/project_name').with_value('services')
is_expected.to contain_trove_config('keystone_authtoken/user_domain_name').with_value('Default')
is_expected.to contain_trove_config('keystone_authtoken/project_domain_name').with_value('Default')
is_expected.to contain_trove_config('keystone_authtoken/insecure').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/auth_section').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/auth_type').with_value('password')
is_expected.to contain_trove_config('keystone_authtoken/auth_uri').with_value('http://localhost:5000')
is_expected.to contain_trove_config('keystone_authtoken/auth_version').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/cache').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/cafile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/certfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/check_revocations_for_cached').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/delay_auth_decision').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/enforce_token_bind').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/hash_algorithms').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/http_connect_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/http_request_max_retries').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/include_service_catalog').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/keyfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_conn_get_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_dead_retry').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_maxsize').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_socket_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_unused_timeout').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_secret_key').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_security_strategy').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcache_use_advanced_pool').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/memcached_servers').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/region_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_trove_config('keystone_authtoken/token_cache_time').with_value('<SERVICE DEFAULT>')
end
end
context 'when overriding parameters' do
before do
params.merge!({
:auth_uri => 'https://10.0.0.1:9999/',
:username => 'myuser',
:password => 'mypasswd',
:auth_url => 'http://:127.0.0.1:35357',
:project_name => 'service_project',
:user_domain_name => 'domainX',
:project_domain_name => 'domainX',
:insecure => false,
:auth_section => 'new_section',
:auth_type => 'password',
:auth_version => 'v3',
:cache => 'somevalue',
:cafile => '/opt/stack/data/cafile.pem',
:certfile => 'certfile.crt',
:check_revocations_for_cached => false,
:delay_auth_decision => false,
:enforce_token_bind => 'permissive',
:hash_algorithms => 'md5',
:http_connect_timeout => '300',
:http_request_max_retries => '3',
:include_service_catalog => true,
:keyfile => 'keyfile',
:memcache_pool_conn_get_timeout => '9',
:memcache_pool_dead_retry => '302',
:memcache_pool_maxsize => '11',
:memcache_pool_socket_timeout => '2',
:memcache_pool_unused_timeout => '61',
:memcache_secret_key => 'secret_key',
:memcache_security_strategy => 'ENCRYPT',
:memcache_use_advanced_pool => true,
:memcached_servers => ['memcached01:11211','memcached02:11211'],
:manage_memcache_package => true,
:region_name => 'region2',
:token_cache_time => '301',
})
end
it 'configure keystone_authtoken' do
is_expected.to contain_trove_config('keystone_authtoken/auth_uri').with_value('https://10.0.0.1:9999/')
is_expected.to contain_trove_config('keystone_authtoken/username').with_value(params[:username])
is_expected.to contain_trove_config('keystone_authtoken/password').with_value(params[:password]).with_secret(true)
is_expected.to contain_trove_config('keystone_authtoken/auth_url').with_value(params[:auth_url])
is_expected.to contain_trove_config('keystone_authtoken/project_name').with_value(params[:project_name])
is_expected.to contain_trove_config('keystone_authtoken/user_domain_name').with_value(params[:user_domain_name])
is_expected.to contain_trove_config('keystone_authtoken/project_domain_name').with_value(params[:project_domain_name])
is_expected.to contain_trove_config('keystone_authtoken/insecure').with_value(params[:insecure])
is_expected.to contain_trove_config('keystone_authtoken/auth_section').with_value(params[:auth_section])
is_expected.to contain_trove_config('keystone_authtoken/auth_type').with_value(params[:auth_type])
is_expected.to contain_trove_config('keystone_authtoken/auth_version').with_value(params[:auth_version])
is_expected.to contain_trove_config('keystone_authtoken/cache').with_value(params[:cache])
is_expected.to contain_trove_config('keystone_authtoken/cafile').with_value(params[:cafile])
is_expected.to contain_trove_config('keystone_authtoken/certfile').with_value(params[:certfile])
is_expected.to contain_trove_config('keystone_authtoken/check_revocations_for_cached').with_value(params[:check_revocations_for_cached])
is_expected.to contain_trove_config('keystone_authtoken/delay_auth_decision').with_value(params[:delay_auth_decision])
is_expected.to contain_trove_config('keystone_authtoken/enforce_token_bind').with_value(params[:enforce_token_bind])
is_expected.to contain_trove_config('keystone_authtoken/hash_algorithms').with_value(params[:hash_algorithms])
is_expected.to contain_trove_config('keystone_authtoken/http_connect_timeout').with_value(params[:http_connect_timeout])
is_expected.to contain_trove_config('keystone_authtoken/http_request_max_retries').with_value(params[:http_request_max_retries])
is_expected.to contain_trove_config('keystone_authtoken/include_service_catalog').with_value(params[:include_service_catalog])
is_expected.to contain_trove_config('keystone_authtoken/keyfile').with_value(params[:keyfile])
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_conn_get_timeout').with_value(params[:memcache_pool_conn_get_timeout])
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_dead_retry').with_value(params[:memcache_pool_dead_retry])
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_maxsize').with_value(params[:memcache_pool_maxsize])
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_socket_timeout').with_value(params[:memcache_pool_socket_timeout])
is_expected.to contain_trove_config('keystone_authtoken/memcache_pool_unused_timeout').with_value(params[:memcache_pool_unused_timeout])
is_expected.to contain_trove_config('keystone_authtoken/memcache_secret_key').with_value(params[:memcache_secret_key])
is_expected.to contain_trove_config('keystone_authtoken/memcache_security_strategy').with_value(params[:memcache_security_strategy])
is_expected.to contain_trove_config('keystone_authtoken/memcache_use_advanced_pool').with_value(params[:memcache_use_advanced_pool])
is_expected.to contain_trove_config('keystone_authtoken/memcached_servers').with_value('memcached01:11211,memcached02:11211')
is_expected.to contain_trove_config('keystone_authtoken/region_name').with_value(params[:region_name])
is_expected.to contain_trove_config('keystone_authtoken/token_cache_time').with_value(params[:token_cache_time])
end
it 'installs python memcache package' do
is_expected.to contain_package('python-memcache')
end
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'trove authtoken'
end
end
end