diff --git a/manifests/config.pp b/manifests/config.pp new file mode 100644 index 00000000..c1d13321 --- /dev/null +++ b/manifests/config.pp @@ -0,0 +1,31 @@ +# == Class: ceilometer::config +# +# This class is used to manage arbitrary ceilometer configurations. +# +# === Parameters +# +# [*ceilometer_config*] +# (optional) Allow configuration of ceilometer.conf. +# +# The value is an hash of ceilometer_config resource. Example: +# { 'DEFAULT/foo' => { value => 'fooValue'}, +# 'DEFAULT/bar' => { value => 'barValue'} +# } +# +# In yaml format, Example: +# ceilometer_config: +# DEFAULT/foo: +# value: fooValue +# DEFAULT/bar: +# value: barValue +# +# NOTE: The configuration MUST NOT be already handled by this module +# or Puppet catalog compilation will fail with duplicate resources. +# +class ceilometer::config ( + $ceilometer_config = {}, +) { + validate_hash($ceilometer_config) + + create_resources('ceilometer_config', $ceilometer_config) +} diff --git a/spec/classes/ceilometer_config_spec.rb b/spec/classes/ceilometer_config_spec.rb new file mode 100644 index 00000000..33e96035 --- /dev/null +++ b/spec/classes/ceilometer_config_spec.rb @@ -0,0 +1,29 @@ +require 'spec_helper' + +describe 'ceilometer::config' do + + let :params do + { :ceilometer_config => { + 'api/host' => { 'value' => '0.0.0.0'}, + 'api/port' => { 'value' => '8777'}, + }, + } + end + + it 'with [api] options ceilometer_config ' do + should contain_ceilometer_config('api/host').with_value('0.0.0.0') + should contain_ceilometer_config('api/port').with_value('8777') + end + + describe 'with [rpc_notifier2] options ceilometer_config' do + before do + params.merge!({ + :ceilometer_config => { 'rpc_notifier2/topics' => { 'value' => 'notifications'},}, + }) + end + it 'should configure rpc_notifier2 topics correctly' do + should contain_ceilometer_config('rpc_notifier2/topics').with_value('notifications') + end + + end +end