Introduce ceilometer:config to manage custom options

This ceilometer::config is aim to use ceilometer_config resource
to manage custom configurations in ceilometer.conf.

This will make end user easy to add their own custom options
in Hiera data.

Fully implements blueprint ceilometer-custom-config

Change-Id: I82b38ca26d4d99471a74b2c116e4c4133262187c
This commit is contained in:
Xingchao Yu 2014-04-03 19:24:03 +08:00
parent 9bd58d7434
commit c9cadc5352
2 changed files with 60 additions and 0 deletions

31
manifests/config.pp Normal file
View File

@ -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)
}

View File

@ -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