# [*configure_endpoint*]
# Should Ceilometer endpoint be configured? Optional. Defaults to 'true'.
#
+# [*service_name*]
+# Name of the service. Optional. Defaults to value of auth_name.
+#
# [*service_type*]
# Type of service. Optional. Defaults to 'metering'.
#
$password = false,
$email = 'ceilometer@localhost',
$auth_name = 'ceilometer',
+ $service_name = undef,
$service_type = 'metering',
$public_address = '127.0.0.1',
$admin_address = '127.0.0.1',
$internal_url_real = "${internal_protocol}://${internal_address}:${port}"
}
+ if $service_name {
+ $real_service_name = $service_name
+ } else {
+ $real_service_name = $auth_name
+ }
+
Keystone_user_role["${auth_name}@${tenant}"] ~>
Service <| name == 'ceilometer-api' |>
roles => ['admin', 'ResellerAdmin'],
require => Keystone_role['ResellerAdmin'],
}
- keystone_service { $auth_name:
+ keystone_service { $real_service_name:
ensure => present,
type => $service_type,
description => 'Openstack Metering Service',
}
if $configure_endpoint {
- keystone_endpoint { "${region}/${auth_name}":
+ keystone_endpoint { "${region}/${real_service_name}":
ensure => present,
public_url => $public_url_real,
admin_url => $admin_url_real,
end
end
+ context 'when overriding service name' do
+ before do
+ params.merge!({
+ :service_name => 'ceilometer_service'
+ })
+ end
+ it 'configures correct user name' do
+ should contain_keystone_user('ceilometer')
+ end
+ it 'configures correct user role' do
+ should contain_keystone_user_role('ceilometer@services')
+ end
+ it 'configures correct service name' do
+ should contain_keystone_service('ceilometer_service')
+ end
+ it 'configures correct endpoint name' do
+ should contain_keystone_endpoint('RegionOne/ceilometer_service')
+ end
+ end
end
-
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
it_configures 'ceilometer keystone auth'
end
+
end