9b5e8e2bc2
The email parameter was mandatory even if it is not used when setting configure_user to false. This commit make the email parameter optional and set a default value to admin@localhost. Change-Id: I2cb092b27b8b3ea2fa082d7bd1b5a20e712c54e4 Signed-off-by: Arnaud Morin <arnaud.morin@gmail.com>
262 lines
8.4 KiB
Ruby
262 lines
8.4 KiB
Ruby
require 'spec_helper'
|
|
describe 'keystone::roles::admin' do
|
|
let :pre_condition do
|
|
"class { 'keystone':
|
|
admin_token => 'dummy',
|
|
admin_password => 'ChangeMe' }"
|
|
end
|
|
|
|
let :facts do
|
|
@default_facts.merge({
|
|
:osfamily => 'Debian',
|
|
:operatingsystem => 'Debian',
|
|
:operatingsystemrelease => '7.0',
|
|
:os_workers => 1,
|
|
})
|
|
end
|
|
|
|
describe 'with only the required params set' do
|
|
let :params do
|
|
{
|
|
:password => 'ChangeMe'
|
|
}
|
|
end
|
|
|
|
it { is_expected.to contain_keystone_tenant('services').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:description => 'Tenant for the openstack services'
|
|
)}
|
|
it { is_expected.to contain_keystone_tenant('openstack').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:description => 'admin tenant'
|
|
)}
|
|
it { is_expected.to contain_keystone_user('admin').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:email => 'admin@localhost',
|
|
:password => 'ChangeMe',
|
|
)}
|
|
it { is_expected.to contain_keystone_role('admin').with_ensure('present') }
|
|
it { is_expected.to contain_keystone_user_role('admin@openstack').with(
|
|
:roles => ['admin'],
|
|
:ensure => 'present',
|
|
:user_domain => nil,
|
|
:project_domain => nil,
|
|
)}
|
|
|
|
end
|
|
|
|
describe 'when overriding optional params' do
|
|
let :pre_condition do
|
|
"class { 'keystone':
|
|
admin_token => 'dummy',
|
|
admin_password => 'foo' }"
|
|
end
|
|
|
|
let :params do
|
|
{
|
|
:admin => 'admin',
|
|
:email => 'foo@baz',
|
|
:password => 'foo',
|
|
:admin_tenant => 'admin',
|
|
:admin_roles => ['admin', 'heat_stack_owner'],
|
|
:service_tenant => 'foobar',
|
|
:admin_tenant_desc => 'admin something else',
|
|
:service_tenant_desc => 'foobar description',
|
|
}
|
|
end
|
|
|
|
it { is_expected.to contain_keystone_tenant('foobar').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:description => 'foobar description'
|
|
)}
|
|
it { is_expected.to contain_keystone_tenant('admin').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:description => 'admin something else'
|
|
)}
|
|
it { is_expected.to contain_keystone_user('admin').with(
|
|
:ensure => 'present',
|
|
:enabled => true,
|
|
:email => 'foo@baz',
|
|
:password => 'foo',
|
|
)}
|
|
it { is_expected.to contain_keystone_user_role('admin@admin').with(
|
|
:roles => ['admin', 'heat_stack_owner'],
|
|
:ensure => 'present',
|
|
:user_domain => nil,
|
|
:project_domain => nil,
|
|
)}
|
|
|
|
end
|
|
|
|
describe 'when disabling user configuration' do
|
|
before do
|
|
let :params do
|
|
{
|
|
:configure_user => false
|
|
}
|
|
end
|
|
|
|
it { is_expected.to_not contain_keystone_user('keystone') }
|
|
it { is_expected.to contain_keystone_user_role('keystone@openstack') }
|
|
end
|
|
end
|
|
|
|
describe 'when disabling user and role configuration' do
|
|
before do
|
|
let :params do
|
|
{
|
|
:configure_user => false,
|
|
:configure_user_role => false
|
|
}
|
|
end
|
|
|
|
it { is_expected.to_not contain_keystone_user('keystone') }
|
|
it { is_expected.to_not contain_keystone_user_role('keystone@openstack') }
|
|
end
|
|
end
|
|
|
|
describe 'when specifying admin_user_domain and admin_project_domain' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:admin_tenant => 'admin_tenant',
|
|
:admin_user_domain => 'admin_user_domain',
|
|
:admin_project_domain => 'admin_project_domain',
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_user('admin').with(
|
|
:domain => 'admin_user_domain',
|
|
)}
|
|
it { is_expected.to contain_keystone_tenant('admin_tenant').with(:domain => 'admin_project_domain') }
|
|
it { is_expected.to contain_keystone_domain('admin_user_domain') }
|
|
it { is_expected.to contain_keystone_domain('admin_project_domain') }
|
|
it { is_expected.to contain_keystone_user_role('admin@admin_tenant').with(
|
|
:roles => ['admin'],
|
|
:ensure => 'present',
|
|
:user_domain => 'admin_user_domain',
|
|
:project_domain => 'admin_project_domain',
|
|
)}
|
|
|
|
end
|
|
|
|
describe 'when specifying admin_user_domain and admin_project_domain' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:admin_tenant => 'admin_tenant::admin_project_domain',
|
|
:admin_user_domain => 'admin_user_domain',
|
|
:admin_project_domain => 'admin_project_domain',
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_user('admin').with(
|
|
:domain => 'admin_user_domain',
|
|
)}
|
|
it { is_expected.to contain_keystone_tenant('admin_tenant::admin_project_domain').with(:domain => 'admin_project_domain') }
|
|
it { is_expected.to contain_keystone_domain('admin_user_domain') }
|
|
it { is_expected.to contain_keystone_domain('admin_project_domain') }
|
|
it { is_expected.to contain_keystone_user_role('admin@admin_tenant::admin_project_domain').with(
|
|
:roles => ['admin'],
|
|
:ensure => 'present',
|
|
:user_domain => 'admin_user_domain',
|
|
:project_domain => 'admin_project_domain',
|
|
)}
|
|
|
|
end
|
|
|
|
describe 'when specifying a service domain' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:service_tenant => 'service_project',
|
|
:service_project_domain => 'service_domain'
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_tenant('service_project').with(:domain => 'service_domain') }
|
|
it { is_expected.to contain_keystone_domain('service_domain') }
|
|
|
|
end
|
|
|
|
describe 'when specifying a service domain and service tenant domain' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:service_tenant => 'service_project::service_domain',
|
|
:service_project_domain => 'service_domain'
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_tenant('service_project::service_domain').with(:domain => 'service_domain') }
|
|
it { is_expected.to contain_keystone_domain('service_domain') }
|
|
|
|
end
|
|
|
|
describe 'when admin_user_domain and admin_project_domain are equal' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:admin_user_domain => 'admin_domain',
|
|
:admin_project_domain => 'admin_domain',
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_domain('admin_domain') }
|
|
end
|
|
|
|
describe 'when specifying a target admin domain' do
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'ChangeMe',
|
|
:admin_user_domain => 'admin_domain',
|
|
:admin_project_domain => 'admin_domain',
|
|
:target_admin_domain => 'admin_domain_target'
|
|
}
|
|
end
|
|
let :pre_condition do
|
|
["class { 'keystone':
|
|
admin_token => 'dummy',
|
|
admin_password => 'ChangeMe' }",
|
|
"file { '/root/openrc': tag => ['openrc']}"]
|
|
end
|
|
it { is_expected.to contain_keystone_domain('admin_domain_target') }
|
|
it { is_expected.to contain_keystone_user_role('admin@::admin_domain_target')
|
|
.with(
|
|
:roles => ['admin'],
|
|
:ensure => 'present',
|
|
:user_domain => 'admin_domain',
|
|
)
|
|
.that_comes_before('File[/root/openrc]')
|
|
}
|
|
end
|
|
|
|
describe 'when admin_password and password do not match' do
|
|
let :pre_condition do
|
|
"class { 'keystone':
|
|
admin_token => 'dummy',
|
|
admin_password => 'foo' }"
|
|
end
|
|
let :params do
|
|
{
|
|
:email => 'foo@bar',
|
|
:password => 'bar',
|
|
:service_tenant => 'services'
|
|
}
|
|
end
|
|
it { is_expected.to contain_keystone_role('admin').with_ensure('present') }
|
|
it { is_expected.to contain_keystone_user_role('admin@openstack').with(
|
|
:roles => ['admin'],
|
|
:ensure => 'present',
|
|
:user_domain => nil,
|
|
:project_domain => nil,
|
|
)}
|
|
end
|
|
end
|