Make Keystone_endpoint match service by name/type

Since a chance in puppet-keystone (1], we now match an endpoint with a
service name/type.
)
[1] http://git.openstack.org/cgit/openstack/puppet-keystone/commit/?id=0a4e06abb0f5b3f324464ff5219d2885816311ce

Change-Id: Idafa03acb82b87763d6f3dcfc2cbfd5b6a802ce0
Closes-Bug: #1528308
This commit is contained in:
Emilien Macchi
2015-12-21 20:33:33 +01:00
parent d93b9709af
commit b02ee32d37
2 changed files with 34 additions and 41 deletions

View File

@@ -319,7 +319,7 @@ class nova::keystone::auth(
}
if $configure_endpoint {
Keystone_endpoint["${region}/${real_service_name}"] ~> Service <| name == 'nova-api' |>
Keystone_endpoint["${region}/${real_service_name}::compute"] ~> Service <| name == 'nova-api' |>
}
keystone::resource::service_identity { "nova service, user ${auth_name}":

View File

@@ -35,39 +35,36 @@ describe 'nova::keystone::auth' do
:roles => ['admin']
)}
it { is_expected.to contain_keystone_service('nova').with(
:ensure => 'present',
:type => 'compute',
it { is_expected.to contain_keystone_service('nova::compute').with(
:ensure => 'present',
:description => 'Openstack Compute Service'
)}
it { is_expected.to contain_keystone_service('novav3').with(
:ensure => 'present',
:type => 'computev3',
it { is_expected.to contain_keystone_service('novav3::computev3').with(
:ensure => 'present',
:description => 'Openstack Compute Service v3'
)}
it { is_expected.to contain_keystone_service('nova_ec2').with(
:ensure => 'present',
:type => 'ec2',
it { is_expected.to contain_keystone_service('nova_ec2::ec2').with(
:ensure => 'present',
:description => 'EC2 Service'
)}
it { is_expected.to contain_keystone_endpoint('RegionOne/nova').with(
it { is_expected.to contain_keystone_endpoint('RegionOne/nova::compute').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s',
:admin_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s',
:internal_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s'
)}
it { is_expected.to contain_keystone_endpoint('RegionOne/novav3').with(
it { is_expected.to contain_keystone_endpoint('RegionOne/novav3::computev3').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8774/v3',
:admin_url => 'http://127.0.0.1:8774/v3',
:internal_url => 'http://127.0.0.1:8774/v3'
)}
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_ec2').with(
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_ec2::ec2').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8773/services/Cloud',
:admin_url => 'http://127.0.0.1:8773/services/Admin',
@@ -91,15 +88,13 @@ describe 'nova::keystone::auth' do
:roles => ['admin']
)}
it { is_expected.to contain_keystone_service('foo').with(
it { is_expected.to contain_keystone_service('foo::compute').with(
:ensure => 'present',
:type => 'compute',
:description => 'Openstack Compute Service'
)}
it { is_expected.to contain_keystone_service('foo_ec2').with(
it { is_expected.to contain_keystone_service('foo_ec2::ec2').with(
:ensure => 'present',
:type => 'ec2',
:description => 'EC2 Service'
)}
@@ -117,8 +112,8 @@ describe 'nova::keystone::auth' do
it { is_expected.to contain_keystone_user('thesame').with(:ensure => 'present') }
it { is_expected.to contain_keystone_user_role('thesame@services').with(:ensure => 'present') }
it { is_expected.to contain_keystone_service('nova').with(:ensure => 'present') }
it { is_expected.to contain_keystone_service('novav3').with(:ensure => 'present') }
it { is_expected.to contain_keystone_service('nova::compute').with(:ensure => 'present') }
it { is_expected.to contain_keystone_service('novav3::computev3').with(:ensure => 'present') }
end
@@ -145,7 +140,7 @@ describe 'nova::keystone::auth' do
end
it do
expect { is_expected.to contain_keystone_service('nova') }.to raise_error(Puppet::Error, /service_name and service_name_v3 must be different/)
expect { is_expected.to contain_keystone_service('nova::compute') }.to raise_error(Puppet::Error, /service_name and service_name_v3 must be different/)
end
end
@@ -166,21 +161,21 @@ describe 'nova::keystone::auth' do
)
end
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova').with(
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova::compute').with(
:ensure => 'present',
:public_url => params[:public_url],
:internal_url => params[:internal_url],
:admin_url => params[:admin_url]
)}
it { is_expected.to contain_keystone_endpoint('RegionTwo/novav3').with(
it { is_expected.to contain_keystone_endpoint('RegionTwo/novav3::computev3').with(
:ensure => 'present',
:public_url => params[:public_url_v3],
:internal_url => params[:internal_url_v3],
:admin_url => params[:admin_url_v3]
)}
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova_ec2').with(
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova_ec2::ec2').with(
:ensure => 'present',
:public_url => params[:ec2_public_url],
:internal_url => params[:ec2_internal_url],
@@ -204,14 +199,14 @@ describe 'nova::keystone::auth' do
)
end
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova').with(
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova::compute').with(
:ensure => 'present',
:public_url => 'https://10.0.0.1:9774/v2.2/%(tenant_id)s',
:admin_url => 'https://10.0.0.2:9774/v2.2/%(tenant_id)s',
:internal_url => 'https://10.0.0.3:9774/v2.2/%(tenant_id)s'
)}
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova_ec2').with(
it { is_expected.to contain_keystone_endpoint('RegionTwo/nova_ec2::ec2').with(
:ensure => 'present',
:public_url => 'https://10.0.0.1:9773/services/Cloud',
:admin_url => 'https://10.0.0.2:9773/services/Admin',
@@ -224,7 +219,7 @@ describe 'nova::keystone::auth' do
params.merge!( :configure_endpoint => false )
end
it { is_expected.to_not contain_keystone_endpoint('RegionOne/nova') }
it { is_expected.to_not contain_keystone_endpoint('RegionOne/nova::compute') }
end
describe 'when disabling EC2 endpoint' do
@@ -232,8 +227,8 @@ describe 'nova::keystone::auth' do
params.merge!( :configure_ec2_endpoint => false )
end
it { is_expected.to_not contain_keystone_service('nova_ec2') }
it { is_expected.to_not contain_keystone_endpoint('RegionOne/nova_ec2') }
it { is_expected.to_not contain_keystone_service('nova_ec2::ec2') }
it { is_expected.to_not contain_keystone_endpoint('RegionOne/nova_ec2::ec2') }
end
describe 'when disabling user configuration' do
@@ -243,9 +238,8 @@ describe 'nova::keystone::auth' do
it { is_expected.to_not contain_keystone_user('nova') }
it { is_expected.to contain_keystone_user_role('nova@services') }
it { is_expected.to contain_keystone_service('nova').with(
:ensure => 'present',
:type => 'compute',
it { is_expected.to contain_keystone_service('nova::compute').with(
:ensure => 'present',
:description => 'Openstack Compute Service'
)}
end
@@ -261,9 +255,8 @@ describe 'nova::keystone::auth' do
it { is_expected.to_not contain_keystone_user('nova') }
it { is_expected.to_not contain_keystone_user_role('nova@services') }
it { is_expected.to contain_keystone_service('nova').with(
:ensure => 'present',
:type => 'compute',
it { is_expected.to contain_keystone_service('nova::compute').with(
:ensure => 'present',
:description => 'Openstack Compute Service'
)}
end
@@ -284,7 +277,7 @@ describe 'nova::keystone::auth' do
}
end
it { is_expected.to contain_keystone_endpoint('RegionOne/nova').with_notify(['Service[nova-api]']) }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova::compute').with_notify(['Service[nova-api]']) }
end
describe 'when overriding service names' do
@@ -299,12 +292,12 @@ describe 'nova::keystone::auth' do
it { is_expected.to contain_keystone_user('nova') }
it { is_expected.to contain_keystone_user_role('nova@services') }
it { is_expected.to contain_keystone_service('nova_service') }
it { is_expected.to contain_keystone_service('nova_service_v3') }
it { is_expected.to contain_keystone_service('nova_service_ec2') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service_v3') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service_ec2') }
it { is_expected.to contain_keystone_service('nova_service::compute') }
it { is_expected.to contain_keystone_service('nova_service_v3::computev3') }
it { is_expected.to contain_keystone_service('nova_service_ec2::ec2') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service::compute') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service_v3::computev3') }
it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service_ec2::ec2') }
end