diff --git a/manifests/reports.pp b/manifests/reports.pp new file mode 100644 index 0000000..ae04574 --- /dev/null +++ b/manifests/reports.pp @@ -0,0 +1,33 @@ +# == Class: magnum::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'] +# +class magnum::reports( + $log_dir = $facts['os_service_default'], + $file_event_handler = $facts['os_service_default'], + $file_event_handler_interval = $facts['os_service_default'], +) { + + include magnum::deps + + oslo::reports { 'magnum_config': + log_dir => $log_dir, + file_event_handler => $file_event_handler, + file_event_handler_interval => $file_event_handler_interval, + } +} diff --git a/releasenotes/notes/oslo-reports-88a501760a5add3d.yaml b/releasenotes/notes/oslo-reports-88a501760a5add3d.yaml new file mode 100644 index 0000000..b321afe --- /dev/null +++ b/releasenotes/notes/oslo-reports-88a501760a5add3d.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + The new ``magnum::reports`` class has been added. diff --git a/spec/classes/magnum_reports_spec.rb b/spec/classes/magnum_reports_spec.rb new file mode 100644 index 0000000..5a0bb1b --- /dev/null +++ b/spec/classes/magnum_reports_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' + +describe 'magnum::reports' do + shared_examples 'magnum::reports' do + context 'with default parameters' do + it { + is_expected.to contain_oslo__reports('magnum_config').with( + :log_dir => '', + :file_event_handler => '', + :file_event_handler_interval => '', + ) + } + end + + context 'with specified parameters' do + let :params do + { + :log_dir => '/var/log/magnum', + :file_event_handler => '/var/tmp/magnum/reports', + :file_event_handler_interval => 1, + } + end + + it { + is_expected.to contain_oslo__reports('magnum_config').with( + :log_dir => '/var/log/magnum', + :file_event_handler => '/var/tmp/magnum/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 'magnum::reports' + end + end +end