Add support for oslo.reports options

Depends-on: https://review.opendev.org/907091
Change-Id: I316de2106716b97fcffc0eec02d4480bb94db972
This commit is contained in:
Takashi Kajinami
2024-01-30 01:04:02 +09:00
parent eeee4b004e
commit 770aa303c1
3 changed files with 99 additions and 0 deletions

48
manifests/reports.pp Normal file
View File

@@ -0,0 +1,48 @@
# == Class: ironic::reports
#
# Configure oslo_reports options
#
# === Parameters
#
# [*log_dir*]
# (Optional) Path to a log directory where to create a file
# Defaults to $facts['os_service_default']
#
# [*file_event_handler*]
# (Optional) The path to a file to watch for changes to trigger the reports.
# Defaults to $facts['os_service_default']
#
# [*file_event_handler_interval*]
# (Optional) How many seconds to wait between pools when file_event_handler
# 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 true
#
class ironic::reports(
$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 = true,
) {
include ironic::deps
oslo::reports { 'ironic_config':
log_dir => $log_dir,
file_event_handler => $file_event_handler,
file_event_handler_interval => $file_event_handler_interval,
package_ensure => $package_ensure,
manage_package => $manage_package,
}
# Install the oslo.reports library before starting the ironic service
Oslo::Reports['ironic_config'] -> Anchor['ironic::service::begin']
}

View File

@@ -0,0 +1,4 @@
---
features:
- |
The new ``ironic::reports`` class has been added.

View File

@@ -0,0 +1,47 @@
require 'spec_helper'
describe 'ironic::reports' do
shared_examples 'ironic::reports' do
context 'with default parameters' do
it {
is_expected.to contain_oslo__reports('ironic_config').with(
:log_dir => '<SERVICE DEFAULT>',
:file_event_handler => '<SERVICE DEFAULT>',
:file_event_handler_interval => '<SERVICE DEFAULT>',
:package_ensure => 'present',
:manage_package => true,
)
}
end
context 'with specified parameters' do
let :params do
{
:log_dir => '/var/log/ironic',
:file_event_handler => '/var/tmp/ironic/reports',
:file_event_handler_interval => 1,
}
end
it {
is_expected.to contain_oslo__reports('ironic_config').with(
:log_dir => '/var/log/ironic',
:file_event_handler => '/var/tmp/ironic/reports',
:file_event_handler_interval => 1,
)
}
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge(OSDefaults.get_facts())
end
it_behaves_like 'ironic::reports'
end
end
end