# (Optional) Use ipmi namespace for polling agent.
# Defaults to true.
#
-# [*coordination_url*]
-# (Optional) The url to use for distributed group membership coordination.
-# Defaults to $::os_service_default.
-#
# [*instance_discovery_method*]
# (Optional) method to discovery instances running on compute node
# Defaults to $::os_service_default
# This is used only if manage_polling is true.
# Defaults to undef
#
+# DEPRECATED PARAMETERS
+#
+# [*coordination_url*]
+# (Optional) The url to use for distributed group membership coordination.
+# Defaults to undef.
+#
class ceilometer::agent::polling (
$manage_service = true,
$enabled = true,
$central_namespace = true,
$compute_namespace = true,
$ipmi_namespace = true,
- $coordination_url = $::os_service_default,
$instance_discovery_method = $::os_service_default,
$manage_polling = false,
$polling_interval = 600,
$polling_meters = $::ceilometer::params::polling_meters,
$polling_config = undef,
+ # DEPRECATED PARAMETERS
+ $coordination_url = undef,
) inherits ceilometer {
include ceilometer::deps
include ceilometer::params
+ if $coordination_url != undef {
+ warning('The coordination_url parameter has been deprecated. Use ceilometer::coordination instead')
+ include ceilometer::coordination
+ }
+
if $central_namespace {
$central_namespace_name = 'central'
} else {
tag => 'ceilometer-service',
}
- if $coordination_url == undef {
- warning('Usage of undef for the coordination_url parameter has been deprecated. \
-Use $::os_service_default instead')
- $coordination_url_real = $::os_service_default
- } else {
- $coordination_url_real = $coordination_url
- }
- ceilometer_config {
- 'coordination/backend_url': value => $coordination_url_real
- }
-
if $manage_polling {
if $polling_config {
validate_legacy(Hash, 'validate_hash', $polling_config)
--- /dev/null
+# == Class: ceilometer::coordination
+#
+# Setup and configure Ceilometer coordination settings.
+#
+# === Parameters
+#
+# [*backend_url*]
+# (Optional) Coordination backend URL.
+# Defaults to $::os_service_default
+#
+class ceilometer::coordination (
+ $backend_url = $::os_service_default,
+) {
+
+ include ceilometer::deps
+
+ $backend_url_real = pick($::ceilometer::agent::polling::coordination_url, $backend_url)
+
+ oslo::coordination{ 'ceilometer_config':
+ backend_url => $backend_url_real
+ }
+}
--- /dev/null
+require 'spec_helper'
+
+describe 'ceilometer::coordination' do
+ shared_examples 'ceilometer::coordination' do
+ context 'with default parameters' do
+ it {
+ is_expected.to contain_oslo__coordination('ceilometer_config').with(
+ :backend_url => '<SERVICE DEFAULT>'
+ )
+ }
+ end
+
+ context 'with specified parameters' do
+ let :params do
+ {
+ :backend_url => 'etcd3+http://127.0.0.1:2379',
+ }
+ end
+
+ it {
+ is_expected.to contain_oslo__coordination('ceilometer_config').with(
+ :backend_url => 'etcd3+http://127.0.0.1:2379'
+ )
+ }
+ end
+ end
+
+ on_supported_os({
+ :supported_os => OSDefaults.get_supported_os
+ }).each do |os,facts|
+ context "on #{os}" do
+ let (:facts) do
+ facts.merge(OSDefaults.get_facts())
+ end
+
+ it_behaves_like 'ceilometer::coordination'
+ end
+ end
+end