diff --git a/manifests/reports.pp b/manifests/reports.pp new file mode 100644 index 00000000..30e642f7 --- /dev/null +++ b/manifests/reports.pp @@ -0,0 +1,33 @@ +# == Class: manila::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 manila::reports( + $log_dir = $facts['os_service_default'], + $file_event_handler = $facts['os_service_default'], + $file_event_handler_interval = $facts['os_service_default'], +) { + + include manila::deps + + oslo::reports { 'manila_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-939f22ec1731caed.yaml b/releasenotes/notes/oslo-reports-939f22ec1731caed.yaml new file mode 100644 index 00000000..3a66f6c7 --- /dev/null +++ b/releasenotes/notes/oslo-reports-939f22ec1731caed.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + The new ``manila::reports`` class has been added. diff --git a/spec/classes/manila_reports_spec.rb b/spec/classes/manila_reports_spec.rb new file mode 100644 index 00000000..2553945c --- /dev/null +++ b/spec/classes/manila_reports_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' + +describe 'manila::reports' do + shared_examples 'manila::reports' do + context 'with default parameters' do + it { + is_expected.to contain_oslo__reports('manila_config').with( + :log_dir => '', + :file_event_handler => '', + :file_event_handler_interval => '', + ) + } + end + + context 'with specified parameters' do + let :params do + { + :log_dir => '/var/log/manila', + :file_event_handler => '/var/tmp/manila/reports', + :file_event_handler_interval => 1, + } + end + + it { + is_expected.to contain_oslo__reports('manila_config').with( + :log_dir => '/var/log/manila', + :file_event_handler => '/var/tmp/manila/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 'manila::reports' + end + end +end