]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Add support for configuring coordination/backend_url
authorChris Dent <chdent@redhat.com>
Thu, 13 Nov 2014 20:24:33 +0000 (20:24 +0000)
committerChris Dent <chdent@redhat.com>
Fri, 14 Nov 2014 12:40:13 +0000 (12:40 +0000)
If 'coordination_url' argument and value is provided to the central agent
or alarm evaluator classes, they will try to set 'backend_url' in the
'[coordination]' section of the ceilometer_config. This allows group
membership handling coordinated by tooz.

ensure_resource is used to avoid duplicate resources while still allowing
the central agent and alarm evaluator to be configured separately if
on different machines.

Note that this change does not include support for enabling coordination
of the compute agent.

Change-Id: I707a8b70ad742cc9f8fdc62c196d0e75574a50b2

manifests/agent/central.pp
manifests/alarm/evaluator.pp
spec/classes/ceilometer_agent_central_spec.rb
spec/classes/ceilometer_alarm_evaluator_spec.rb

index c42d9060b9448653f3ac25b1663846853df9d20e..a781255fb02904c8405974354a59f5d96986e55b 100644 (file)
 #    (optional) ensure state for package.
 #    Defaults to 'present'
 #
+#  [*coordination_url*]
+#    (optional) The url to use for distributed group membership coordination.
+#    Defaults to undef.
+#
 
 class ceilometer::agent::central (
   $manage_service   = true,
   $enabled          = true,
   $package_ensure   = 'present',
+  $coordination_url = undef,
 ) {
 
   include ceilometer::params
@@ -47,4 +52,8 @@ class ceilometer::agent::central (
     hasrestart => true,
   }
 
+  if $coordination_url {
+    ensure_resource('ceilometer_config', 'coordination/backend_url',
+      {'value' => $coordination_url})
+  }
 }
index c634f3ba622c99be077469c3a663ac033fed331e..9a67843ae1be46c0e7eef399ae9da87aabd5018f 100644 (file)
 #    (optional) Record alarm change events
 #    Defaults to true.
 #
+#  [*coordination_url*]
+#    (optional) The url to use for distributed group membership coordination.
+#    Defaults to undef.
+#
 class ceilometer::alarm::evaluator (
   $manage_service      = true,
   $enabled             = true,
@@ -32,6 +36,7 @@ class ceilometer::alarm::evaluator (
   $evaluation_service  = 'ceilometer.alarm.service.SingletonAlarmService',
   $partition_rpc_topic = 'alarm_partition_coordination',
   $record_history      = true,
+  $coordination_url    = undef,
 ) {
 
   include ceilometer::params
@@ -67,5 +72,10 @@ class ceilometer::alarm::evaluator (
     'alarm/evaluation_service'  :  value => $evaluation_service;
     'alarm/partition_rpc_topic' :  value => $partition_rpc_topic;
     'alarm/record_history'      :  value => $record_history;
-    }
+  }
+
+  if $coordination_url {
+    ensure_resource('ceilometer_config', 'coordination/backend_url',
+      {'value' => $coordination_url})
+  }
 }
index 0e20c0bd55d6fa38c3ff851fe0d9a12bd3c63b39..9782086d1cf9a993bb5139d90694b2ab8661d7dd 100644 (file)
@@ -7,9 +7,11 @@ describe 'ceilometer::agent::central' do
   end
 
   let :params do
-    { :enabled        => true,
-      :manage_service => true,
-      :package_ensure => 'latest' }
+    { :enabled          => true,
+      :manage_service   => true,
+      :package_ensure   => 'latest',
+      :coordination_url => 'redis://localhost:6379'
+    }
   end
 
   shared_examples_for 'ceilometer-agent-central' do
@@ -48,6 +50,10 @@ describe 'ceilometer::agent::central' do
       end
     end
 
+    it 'configures central agent' do
+      should contain_ceilometer_config('coordination/backend_url').with_value( params[:coordination_url] )
+    end
+
     context 'with disabled service managing' do
       before do
         params.merge!({
index b2c4c48b0732a2427d8c7df4285469f29c15b64a..e8589a09b8fcfc6b576ccd809ee84a72c3aeae95 100644 (file)
@@ -38,6 +38,7 @@ describe 'ceilometer::alarm::evaluator' do
       should contain_ceilometer_config('alarm/evaluation_service').with_value( params[:evaluation_service] )
       should contain_ceilometer_config('alarm/partition_rpc_topic').with_value( params[:partition_rpc_topic] )
       should contain_ceilometer_config('alarm/record_history').with_value( params[:record_history] )
+      should_not contain_ceilometer_config('coordination/backend_url')
     end
 
     context 'when overriding parameters' do
@@ -45,12 +46,14 @@ describe 'ceilometer::alarm::evaluator' do
         params.merge!(:evaluation_interval => 80,
                       :partition_rpc_topic => 'alarm_partition_coordination',
                       :record_history      => false,
-                      :evaluation_service  => 'ceilometer.alarm.service.SingletonTestAlarmService')
+                      :evaluation_service  => 'ceilometer.alarm.service.SingletonTestAlarmService',
+                      :coordination_url     => 'redis://localhost:6379')
       end
       it { should contain_ceilometer_config('alarm/evaluation_interval').with_value(params[:evaluation_interval]) }
       it { should contain_ceilometer_config('alarm/evaluation_service').with_value(params[:evaluation_service]) }
       it { should contain_ceilometer_config('alarm/record_history').with_value(params[:record_history]) }
       it { should contain_ceilometer_config('alarm/partition_rpc_topic').with_value(params[:partition_rpc_topic])  }
+      it { should contain_ceilometer_config('coordination/backend_url').with_value( params[:coordination_url]) }
     end
 
     context 'when override the evaluation interval with a non numeric value' do