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
(cherry picked from commit
fade72deab0c52f7ea71b2891acb3785e1682a6b)
# (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
hasrestart => true,
}
+ if $coordination_url {
+ ensure_resource('ceilometer_config', 'coordination/backend_url',
+ {'value' => $coordination_url})
+ }
}
# (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,
$evaluation_service = 'ceilometer.alarm.service.SingletonAlarmService',
$partition_rpc_topic = 'alarm_partition_coordination',
$record_history = true,
+ $coordination_url = undef,
) {
include ceilometer::params
'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})
+ }
}
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
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!({
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
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