Merge "Globally support system scope credentials"

This commit is contained in:
Zuul 2022-03-12 05:19:54 +00:00 committed by Gerrit Code Review
commit 8cb0afd197
3 changed files with 35 additions and 2 deletions

View File

@ -24,6 +24,10 @@
# (Optional) the keystone project name for ceilometer services # (Optional) the keystone project name for ceilometer services
# Defaults to 'services'. # Defaults to 'services'.
# #
# [*system_scope*]
# (Optional) Scope for system operations.
# Defaults to $::os_service_default
#
# [*cafile*] # [*cafile*]
# (Optional) Certificate chain for SSL validation. # (Optional) Certificate chain for SSL validation.
# Defaults to $::os_service_default. # Defaults to $::os_service_default.
@ -51,6 +55,7 @@ class ceilometer::agent::service_credentials (
$region_name = $::os_service_default, $region_name = $::os_service_default,
$username = 'ceilometer', $username = 'ceilometer',
$project_name = 'services', $project_name = 'services',
$system_scope = $::os_service_default,
$cafile = $::os_service_default, $cafile = $::os_service_default,
$interface = $::os_service_default, $interface = $::os_service_default,
$user_domain_name = 'Default', $user_domain_name = 'Default',
@ -60,16 +65,25 @@ class ceilometer::agent::service_credentials (
include ceilometer::deps include ceilometer::deps
if is_service_default($system_scope) {
$project_name_real = $project_name
$project_domain_name_real = $project_domain_name
} else {
$project_name_real = $::os_service_default
$project_domain_name_real = $::os_service_default
}
ceilometer_config { ceilometer_config {
'service_credentials/auth_url' : value => $auth_url; 'service_credentials/auth_url' : value => $auth_url;
'service_credentials/region_name' : value => $region_name; 'service_credentials/region_name' : value => $region_name;
'service_credentials/username' : value => $username; 'service_credentials/username' : value => $username;
'service_credentials/password' : value => $password, secret => true; 'service_credentials/password' : value => $password, secret => true;
'service_credentials/project_name' : value => $project_name; 'service_credentials/project_name' : value => $project_name_real;
'service_credentials/system_scope' : value => $system_scope;
'service_credentials/cafile' : value => $cafile; 'service_credentials/cafile' : value => $cafile;
'service_credentials/interface' : value => $interface; 'service_credentials/interface' : value => $interface;
'service_credentials/user_domain_name' : value => $user_domain_name; 'service_credentials/user_domain_name' : value => $user_domain_name;
'service_credentials/project_domain_name': value => $project_domain_name; 'service_credentials/project_domain_name': value => $project_domain_name_real;
'service_credentials/auth_type' : value => $auth_type; 'service_credentials/auth_type' : value => $auth_type;
} }
} }

View File

@ -0,0 +1,5 @@
---
features:
- |
The ``ceilometer::agent::service_credentials::system_scope`` parameter has
been added.

View File

@ -19,6 +19,7 @@ describe 'ceilometer::agent::service_credentials' do
is_expected.to contain_ceilometer_config('service_credentials/username').with_value('ceilometer') is_expected.to contain_ceilometer_config('service_credentials/username').with_value('ceilometer')
is_expected.to contain_ceilometer_config('service_credentials/password').with_value('password').with_secret(true) is_expected.to contain_ceilometer_config('service_credentials/password').with_value('password').with_secret(true)
is_expected.to contain_ceilometer_config('service_credentials/project_name').with_value('services') is_expected.to contain_ceilometer_config('service_credentials/project_name').with_value('services')
is_expected.to contain_ceilometer_config('service_credentials/system_scope').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/cafile').with_value('<SERVICE DEFAULT>') is_expected.to contain_ceilometer_config('service_credentials/cafile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/interface').with_value('<SERVICE DEFAULT>') is_expected.to contain_ceilometer_config('service_credentials/interface').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/user_domain_name').with_value('Default') is_expected.to contain_ceilometer_config('service_credentials/user_domain_name').with_value('Default')
@ -48,6 +49,7 @@ describe 'ceilometer::agent::service_credentials' do
is_expected.to contain_ceilometer_config('service_credentials/username').with_value('ceilometer2') is_expected.to contain_ceilometer_config('service_credentials/username').with_value('ceilometer2')
is_expected.to contain_ceilometer_config('service_credentials/password').with_value('password').with_secret(true) is_expected.to contain_ceilometer_config('service_credentials/password').with_value('password').with_secret(true)
is_expected.to contain_ceilometer_config('service_credentials/project_name').with_value('services2') is_expected.to contain_ceilometer_config('service_credentials/project_name').with_value('services2')
is_expected.to contain_ceilometer_config('service_credentials/system_scope').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/cafile').with_value('/tmp/dummy.pem') is_expected.to contain_ceilometer_config('service_credentials/cafile').with_value('/tmp/dummy.pem')
is_expected.to contain_ceilometer_config('service_credentials/interface').with_value('internalURL') is_expected.to contain_ceilometer_config('service_credentials/interface').with_value('internalURL')
is_expected.to contain_ceilometer_config('service_credentials/user_domain_name').with_value('MyDomain') is_expected.to contain_ceilometer_config('service_credentials/user_domain_name').with_value('MyDomain')
@ -56,6 +58,18 @@ describe 'ceilometer::agent::service_credentials' do
end end
end end
context 'when system_scope is set' do
before do
params.merge!(
:system_scope => 'all'
)
end
it 'configures system-scoped credential' do
is_expected.to contain_ceilometer_config('service_credentials/project_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/project_domain_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ceilometer_config('service_credentials/system_scope').with_value('all')
end
end
end end
on_supported_os({ on_supported_os({