diff --git a/manifests/notifier.pp b/manifests/notifier.pp index 95cb7f6..9a5b997 100644 --- a/manifests/notifier.pp +++ b/manifests/notifier.pp @@ -13,20 +13,35 @@ # (optional) ensure state for package. # Defaults to 'present' # +# [*notifiers*] +# (optional) Names of enabled notifiers. +# Defaults to $::os_service_default. +# class vitrage::notifier ( $manage_service = true, $enabled = true, $package_ensure = 'present', + $notifiers = $::os_service_default, ) { include ::vitrage::deps include ::vitrage::params + if !is_service_default($notifiers) { + $notifiers_orig = join(any2array($notifiers), ',') + } else { + $notifiers_orig = $notifiers + } + ensure_resource( 'package', [$::vitrage::params::notifier_package_name], { ensure => $package_ensure, tag => ['openstack', 'vitrage-package'] } ) + vitrage_config { + 'DEFAULT/notifiers': value => $notifiers_orig; + } + if $manage_service { if $enabled { $service_ensure = 'running' diff --git a/spec/classes/vitrage_notifier_spec.rb b/spec/classes/vitrage_notifier_spec.rb index 880b803..2a34100 100644 --- a/spec/classes/vitrage_notifier_spec.rb +++ b/spec/classes/vitrage_notifier_spec.rb @@ -19,6 +19,10 @@ describe 'vitrage::notifier' do ) end + it 'configure notifier default params' do + is_expected.to contain_vitrage_config('DEFAULT/notifiers').with_value('') + end + it 'configures vitrage-notifier service' do is_expected.to contain_service('vitrage-notifier').with( :ensure => 'running', @@ -67,6 +71,18 @@ describe 'vitrage::notifier' do ) end end + + context 'when configuring notifiers' do + let :params do + { :notifiers => ['mistral', 'nova'] } + end + + it { is_expected.to compile } + it 'configure notifier params' do + is_expected.to contain_vitrage_config('DEFAULT/notifiers').with_value('mistral,nova') + end + end + end on_supported_os({