95a4d48aeb
... so that the parameter names clearly indicate that domain name should be used instead of domain id. This patch also change the default value of these domain parameters from 'default' to 'Default', because now 'Default' is commonly used as the name for default domain. Change-Id: I4bce039248041ac2ccb74975cf8b97ea938efd67
154 lines
5.3 KiB
Ruby
154 lines
5.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'openstack_extras::auth_file' do
|
|
shared_examples 'openstack_extras::auth_file' do
|
|
context 'when only passing default class parameters' do
|
|
let :params do
|
|
{
|
|
:password => 'admin'
|
|
}
|
|
end
|
|
|
|
it { is_expected.to contain_file('/root/openrc').with(
|
|
:owner => 'root',
|
|
:group => 'root',
|
|
:mode => '0700',
|
|
:show_diff => false,
|
|
:tag => ['openrc'],
|
|
)}
|
|
|
|
it {
|
|
verify_contents(catalogue, '/root/openrc', [
|
|
'export OS_NO_CACHE=\'true\'',
|
|
'export OS_PROJECT_NAME=\'openstack\'',
|
|
'export OS_USERNAME=\'admin\'',
|
|
'export OS_PASSWORD=\'admin\'',
|
|
'export OS_AUTH_URL=\'http://127.0.0.1:5000/v3/\'',
|
|
'export OS_AUTH_STRATEGY=\'keystone\'',
|
|
'export OS_REGION_NAME=\'RegionOne\'',
|
|
'export OS_PROJECT_DOMAIN_NAME=\'Default\'',
|
|
'export OS_USER_DOMAIN_NAME=\'Default\'',
|
|
'export OS_INTERFACE=\'public\'',
|
|
'export OS_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export CINDER_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export GLANCE_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export KEYSTONE_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export NOVA_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export NEUTRON_ENDPOINT_TYPE=\'publicURL\'',
|
|
'export OS_IDENTITY_API_VERSION=\'3\'',
|
|
])
|
|
}
|
|
end
|
|
|
|
context 'when overriding parameters' do
|
|
let :params do
|
|
{
|
|
:password => 'admin',
|
|
:auth_url => 'http://127.0.0.2:5000/v3/',
|
|
:service_token => 'servicetoken',
|
|
:service_endpoint => 'http://127.0.0.2:5000/v3/',
|
|
:username => 'myuser',
|
|
:tenant_name => 'mytenant',
|
|
:project_name => 'myproject',
|
|
:region_name => 'myregion',
|
|
:use_no_cache => 'false',
|
|
:os_interface => 'internal',
|
|
:os_endpoint_type => 'internalURL',
|
|
:cinder_endpoint_type => 'internalURL',
|
|
:glance_endpoint_type => 'internalURL',
|
|
:keystone_endpoint_type => 'internalURL',
|
|
:nova_endpoint_type => 'internalURL',
|
|
:neutron_endpoint_type => 'internalURL',
|
|
:auth_strategy => 'no_auth',
|
|
:path => '/path/to/file',
|
|
:user_domain_name => 'anotherdomain',
|
|
:project_domain_name => 'anotherdomain',
|
|
:compute_api_version => '2.1',
|
|
:network_api_version => '2.0',
|
|
:image_api_version => '2',
|
|
:volume_api_version => '2',
|
|
:identity_api_version => '3.1',
|
|
:object_api_version => '1',
|
|
}
|
|
end
|
|
|
|
it { is_expected.to contain_file('/path/to/file').with(
|
|
:owner => 'root',
|
|
:group => 'root',
|
|
:mode => '0700',
|
|
:show_diff => false,
|
|
:tag => ['openrc'],
|
|
)}
|
|
|
|
it {
|
|
verify_contents(catalogue, '/path/to/file', [
|
|
'export OS_SERVICE_TOKEN=\'servicetoken\'',
|
|
'export OS_SERVICE_ENDPOINT=\'http://127.0.0.2:5000/v3/\'',
|
|
'export OS_NO_CACHE=\'false\'',
|
|
'export OS_TENANT_NAME=\'mytenant\'',
|
|
'export OS_PROJECT_NAME=\'myproject\'',
|
|
'export OS_USERNAME=\'myuser\'',
|
|
'export OS_PASSWORD=\'admin\'',
|
|
'export OS_AUTH_URL=\'http://127.0.0.2:5000/v3/\'',
|
|
'export OS_AUTH_STRATEGY=\'no_auth\'',
|
|
'export OS_REGION_NAME=\'myregion\'',
|
|
'export OS_PROJECT_DOMAIN_NAME=\'anotherdomain\'',
|
|
'export OS_USER_DOMAIN_NAME=\'anotherdomain\'',
|
|
'export OS_INTERFACE=\'internal\'',
|
|
'export OS_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export CINDER_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export GLANCE_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export KEYSTONE_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export NOVA_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export NEUTRON_ENDPOINT_TYPE=\'internalURL\'',
|
|
'export OS_COMPUTE_API_VERSION=\'2.1\'',
|
|
'export OS_NETWORK_API_VERSION=\'2.0\'',
|
|
'export OS_IMAGE_API_VERSION=\'2\'',
|
|
'export OS_VOLUME_API_VERSION=\'2\'',
|
|
'export OS_IDENTITY_API_VERSION=\'3.1\'',
|
|
'export OS_OBJECT_API_VERSION=\'1\'',
|
|
])
|
|
}
|
|
end
|
|
|
|
context 'handle password and token with single quotes' do
|
|
let :params do
|
|
{
|
|
:password => 'singlequote\'',
|
|
:service_token => 'key\'stone'
|
|
}
|
|
end
|
|
|
|
it {
|
|
verify_contents(catalogue, '/root/openrc', [
|
|
'export OS_SERVICE_TOKEN=\'key\\\'stone\'',
|
|
'export OS_PASSWORD=\'singlequote\\\'\'',
|
|
])
|
|
}
|
|
end
|
|
|
|
context 'when the file is in /tmp' do
|
|
let :params do
|
|
{
|
|
:password => 'secret',
|
|
:path => '/tmp/openrc'
|
|
}
|
|
end
|
|
|
|
it { should contain_file('/tmp/openrc')}
|
|
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_behaves_like 'openstack_extras::auth_file'
|
|
end
|
|
end
|
|
end
|