--- /dev/null
+# == 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)
+}
--- /dev/null
+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