Add optional installation of oslo.reports package

Some services like ironic does not require oslo.reports but users have
to install the library to capture GMR. This introduces a few new
options to enable management of oslo.reports package to cover that
requirement.

Because the oslo::reports class was added during this cycle, this
change contains no release note updates.

Change-Id: I64d9e6e8135fa051db0a3a576ee8998fd00a3824
This commit is contained in:
Takashi Kajinami
2024-01-30 01:00:55 +09:00
parent 1efa397d12
commit 9175c459e4
3 changed files with 49 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ class oslo::params {
$python_redis_package_name = 'python3-redis'
$python_etcd3gw_package_name = 'python3-etcd3gw'
$python_pymemcache_package_name = 'python3-pymemcache'
$oslo_reports_package_name = 'python3-oslo-reports'
}
'Debian': {
$pymysql_package_name = 'python3-pymysql'
@@ -21,6 +22,7 @@ class oslo::params {
$python_redis_package_name = 'python3-redis'
$python_etcd3gw_package_name = 'python3-etcd3gw'
$python_pymemcache_package_name = 'python3-pymemcache'
$oslo_reports_package_name = 'python3-oslo.reports'
}
default: {
fail("Unsupported osfamily: ${facts['os']['family']}")

View File

@@ -21,18 +21,38 @@
# is set.
# Defaults to $facts['os_service_default']
#
# [*package_ensure*]
# (Optional) ensure state for package.
# Defaults to 'present'
#
# [*manage_package*]
# (Optional) Manage oslo.reports package.
# Defaults to false
#
define oslo::reports(
$config = $name,
$log_dir = $facts['os_service_default'],
$file_event_handler = $facts['os_service_default'],
$file_event_handler_interval = $facts['os_service_default'],
$package_ensure = 'present',
Boolean $manage_package = false,
) {
include oslo::params
$oslo_reports_options = {
'oslo_reports/log_dir' => { value => $log_dir },
'oslo_reports/file_event_handler' => { value => $file_event_handler },
'oslo_reports/file_event_handler_interval' => { value => $file_event_handler_interval },
}
if $manage_package {
ensure_packages( 'oslo.reports', {
name => $::oslo::params::oslo_reports_package_name,
ensure => $package_ensure,
tag => ['openstack'],
})
}
create_resources($config, $oslo_reports_options)
}

View File

@@ -16,6 +16,10 @@ describe 'oslo::reports' do
is_expected.to contain_keystone_config('oslo_reports/file_event_handler').with_value('<SERVICE DEFAULT>')
is_expected.to contain_keystone_config('oslo_reports/file_event_handler_interval').with_value('<SERVICE DEFAULT>')
end
it 'should not manage the oslo.reports package' do
is_expected.to_not contain_package('oslo.reports')
end
end
context 'with parameters overridden' do
@@ -33,6 +37,20 @@ describe 'oslo::reports' do
is_expected.to contain_keystone_config('oslo_reports/file_event_handler_interval').with_value(1)
end
end
context 'with package management enabled' do
let :params do
{ :manage_package => true }
end
it 'should not manage the oslo.reports package' do
is_expected.to contain_package('oslo.reports').with(
:ensure => 'installed',
:name => platform_params[:oslo_reports_package_name],
:tag => ['openstack'],
)
end
end
end
on_supported_os({
@@ -43,6 +61,15 @@ describe 'oslo::reports' do
facts.merge!(OSDefaults.get_facts())
end
let(:platform_params) do
case facts[:os]['family']
when 'Debian'
{ :oslo_reports_package_name => 'python3-oslo.reports' }
when 'RedHat'
{ :oslo_reports_package_name => 'python3-oslo-reports' }
end
end
include_examples 'oslo::reports'
end
end