From 2c48365980cd93de53aa17f25dc2531c8bcbfc6e Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Wed, 4 May 2022 00:48:48 +0900 Subject: [PATCH] polling: Ensure unused parameters are cleared ... instead of leaving the parameters unmanaged. Change-Id: I0eeb25b131385ad4448fc8cec04efbdce0b7d87a --- manifests/agent/polling.pp | 28 +++++++++++----- spec/classes/ceilometer_agent_polling_spec.rb | 33 +++++++++++++++++-- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/manifests/agent/polling.pp b/manifests/agent/polling.pp index 734ce95..9360d5f 100644 --- a/manifests/agent/polling.pp +++ b/manifests/agent/polling.pp @@ -103,7 +103,7 @@ class ceilometer::agent::polling ( if $central_namespace { $central_namespace_name = 'central' } else { - $central_namespace_name = '' + $central_namespace_name = undef } if $compute_namespace { @@ -129,27 +129,39 @@ class ceilometer::agent::polling ( 'compute/resource_cache_expiry': value => $resource_cache_expiry; } } else { - $compute_namespace_name = '' + $compute_namespace_name = undef + ceilometer_config { + 'compute/instance_discovery_method': ensure => absent; + 'compute/resource_update_interval': ensure => absent; + 'compute/resource_cache_expiry': ensure => absent; + } } if $ipmi_namespace { $ipmi_namespace_name = 'ipmi' } else { - $ipmi_namespace_name = '' + $ipmi_namespace_name = undef } - $namespaces = delete([$central_namespace_name, $compute_namespace_name, $ipmi_namespace_name], '') - $namespaces_real = inline_template('<%= @namespaces.select { |x| x and x !~ /^undef/ }.compact.join "," %>') - package { 'ceilometer-polling': ensure => $package_ensure, name => $::ceilometer::params::agent_polling_package_name, tag => ['openstack', 'ceilometer-package'], } - if $namespaces_real { + $namespaces_real = delete_undef_values([ + $central_namespace_name, + $compute_namespace_name, + $ipmi_namespace_name + ]) + + if empty($namespaces_real) { + ceilometer_config { + 'DEFAULT/polling_namespaces': ensure => absent + } + } else { ceilometer_config { - 'DEFAULT/polling_namespaces': value => $namespaces_real + 'DEFAULT/polling_namespaces': value => join($namespaces_real, ',') } } diff --git a/spec/classes/ceilometer_agent_polling_spec.rb b/spec/classes/ceilometer_agent_polling_spec.rb index 06fbbd9..32d450d 100644 --- a/spec/classes/ceilometer_agent_polling_spec.rb +++ b/spec/classes/ceilometer_agent_polling_spec.rb @@ -82,15 +82,44 @@ describe 'ceilometer::agent::polling' do } end + context 'with compute namespace disabled' do + before do + params.merge!( + :compute_namespace => false + ) + end + + it { + should contain_ceilometer_config('DEFAULT/polling_namespaces').with_value('central,ipmi') + should contain_ceilometer_config('compute/instance_discovery_method').with_ensure('absent') + should contain_ceilometer_config('compute/resource_update_interval').with_ensure('absent') + should contain_ceilometer_config('compute/resource_cache_expiry').with_ensure('absent') + } + end + context 'with central and ipmi polling namespaces disabled' do before do - params.merge!( :central_namespace => false, - :ipmi_namespace => false ) + params.merge!( + :central_namespace => false, + :ipmi_namespace => false + ) end it { should contain_ceilometer_config('DEFAULT/polling_namespaces').with_value('compute') } end + context 'with all namespaces disabled' do + before do + params.merge!( + :compute_namespace => false, + :central_namespace => false, + :ipmi_namespace => false + ) + end + + it { should contain_ceilometer_config('DEFAULT/polling_namespaces').with_ensure('absent') } + end + context 'with service disabled' do before do params.merge!( :enabled => false ) -- 2.45.2