From 981fcaeb53d6108e40330c65ede49c831445f08d Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Mon, 28 Sep 2015 13:39:58 -0400 Subject: [PATCH] proxy: ceilometer httpd support When running Ceilometer in WSGI, 'httpd' service will need to be allowed to write in /var/log/ceilometer. Instead of hardcoding 'swift' user for being part of 'ceilometer' group, create a new parameter 'group' so we can override which user we want part of 'ceilometer' group. Change-Id: Ib4c63ea386e93161cddb44c0a588f8e658c214e4 --- manifests/proxy/ceilometer.pp | 11 +++++++-- spec/classes/swift_proxy_ceilometer_spec.rb | 25 ++++++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/manifests/proxy/ceilometer.pp b/manifests/proxy/ceilometer.pp index 6ae73e7b..a829e8b2 100644 --- a/manifests/proxy/ceilometer.pp +++ b/manifests/proxy/ceilometer.pp @@ -11,6 +11,12 @@ # Enable or not ceilometer fragment # Defaults to 'present' # +# [*group*] +# Group name to add to 'swift' user. +# ceilometer/eventlet: set 'ceilometer' (default) +# ceilometer/wsgi: set $::apache::group +# Defaults to 'ceilometer' +# # == Examples # # == Authors @@ -22,11 +28,12 @@ # Copyright 2013 eNovance licensing@enovance.com # class swift::proxy::ceilometer( - $ensure = 'present' + $ensure = 'present', + $group = 'ceilometer', ) inherits swift { User['swift'] { - groups +> 'ceilometer', + groups +> $group, } if defined(Service['swift-proxy']) { diff --git a/spec/classes/swift_proxy_ceilometer_spec.rb b/spec/classes/swift_proxy_ceilometer_spec.rb index 211cc257..84f4f635 100644 --- a/spec/classes/swift_proxy_ceilometer_spec.rb +++ b/spec/classes/swift_proxy_ceilometer_spec.rb @@ -20,14 +20,23 @@ describe 'swift::proxy::ceilometer' do "/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/33_swift_ceilometer" end - it { is_expected.to contain_file(fragment_file).with_content(/[filter:ceilometer]/) } - it { is_expected.to contain_file(fragment_file).with_content(/use = egg:ceilometer#swift/) } - if Puppet.version.to_f < 4.0 - it { is_expected.to contain_concat__fragment('swift_ceilometer').with_require('Class[::Ceilometer]')} - else - it { is_expected.to contain_concat__fragment('swift_ceilometer').with_require('Class[Ceilometer]')} + describe "when using default parameters" do + it { is_expected.to contain_file(fragment_file).with_content(/[filter:ceilometer]/) } + it { is_expected.to contain_file(fragment_file).with_content(/use = egg:ceilometer#swift/) } + if Puppet.version.to_f < 4.0 + it { is_expected.to contain_concat__fragment('swift_ceilometer').with_require('Class[::Ceilometer]')} + else + it { is_expected.to contain_concat__fragment('swift_ceilometer').with_require('Class[Ceilometer]')} + end + it { is_expected.to contain_user('swift').with_groups('ceilometer') } + it { is_expected.to contain_file('/var/log/ceilometer/swift-proxy-server.log').with(:owner => 'swift', :group => 'swift', :mode => '0664') } + end + + describe "when overriding default parameters" do + let :params do + { :group => 'www-data' } + end + it { is_expected.to contain_user('swift').with_groups('www-data') } end - it { is_expected.to contain_user('swift').with_groups('ceilometer') } - it { is_expected.to contain_file('/var/log/ceilometer/swift-proxy-server.log').with(:owner => 'swift', :group => 'swift', :mode => '0664') } end