diff --git a/manifests/params.pp b/manifests/params.pp index 5fe7e628..ed150ea8 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -12,6 +12,7 @@ class ceilometer::params { $event_pipeline = '/etc/ceilometer/event_pipeline.yaml' $pipeline = '/etc/ceilometer/pipeline.yaml' $polling = '/etc/ceilometer/polling.yaml' + $group = 'ceilometer' case $::osfamily { 'RedHat': { diff --git a/manifests/policy.pp b/manifests/policy.pp index 3756715c..3c4977f6 100644 --- a/manifests/policy.pp +++ b/manifests/policy.pp @@ -2,18 +2,25 @@ # # Configure the ceilometer policies # -# === Parameters: +# === Parameters # # [*policies*] -# (Optional) Set of policies to configure for ceilometer -# Example : { -# 'ceilometer-context_is_admin' => {'context_is_admin' => 'true'}, -# 'ceilometer-default' => {'default' => 'rule:admin_or_owner'} -# } +# (optional) Set of policies to configure for ceilometer +# Example : +# { +# 'ceilometer-context_is_admin' => { +# 'key' => 'context_is_admin', +# 'value' => 'true' +# }, +# 'ceilometer-default' => { +# 'key' => 'default', +# 'value' => 'rule:admin_or_owner' +# } +# } # Defaults to empty hash. # # [*policy_path*] -# (Optional) Path to the ceilometer policy.json file +# (optional) Path to the ceilometer policy.json file # Defaults to /etc/ceilometer/policy.json # class ceilometer::policy ( @@ -22,11 +29,14 @@ class ceilometer::policy ( ) { include ::ceilometer::deps + include ::ceilometer::params validate_hash($policies) Openstacklib::Policy::Base { - file_path => $policy_path, + file_path => $policy_path, + file_user => 'root', + file_group => $::ceilometer::params::group, } create_resources('openstacklib::policy::base', $policies) diff --git a/spec/classes/ceilometer_policy_spec.rb b/spec/classes/ceilometer_policy_spec.rb index f4f98ee7..d49c922c 100644 --- a/spec/classes/ceilometer_policy_spec.rb +++ b/spec/classes/ceilometer_policy_spec.rb @@ -17,8 +17,10 @@ describe 'ceilometer::policy' do it 'set up the policies' do is_expected.to contain_openstacklib__policy__base('context_is_admin').with({ - :key => 'context_is_admin', - :value => 'foo:bar' + :key => 'context_is_admin', + :value => 'foo:bar', + :file_user => 'root', + :file_group => 'ceilometer', }) is_expected.to contain_oslo__policy('ceilometer_config').with( :policy_file => '/etc/ceilometer/policy.json', @@ -34,8 +36,7 @@ describe 'ceilometer::policy' do facts.merge!(OSDefaults.get_facts()) end - it_behaves_like 'ceilometer policies' + it_configures 'ceilometer policies' end end - end