puppet-openstack_extras/spec/classes/openstack_extras_auth_file_spec.rb
Takashi Kajinami 95a4d48aeb Rename *_domain parameters to *_domain_name
... 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
2020-05-02 00:15:52 +09:00

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