From 355ddc0b5cbe69dff80f62a61c94b43221a1bcec 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 (cherry picked from commit 2c48365980cd93de53aa17f25dc2531c8bcbfc6e) (cherry picked from commit 7768fad0e1d44b53fa26709fe6817d9e13b8ddf6) (cherry picked from commit b32543f8d91698cf1e3d41ac25c39eb7b0ac941f) --- 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 8dbb70c..2504f56 100644 --- a/manifests/agent/polling.pp +++ b/manifests/agent/polling.pp @@ -95,7 +95,7 @@ class ceilometer::agent::polling ( if $central_namespace { $central_namespace_name = 'central' } else { - $central_namespace_name = '' + $central_namespace_name = undef } if $compute_namespace { @@ -121,27 +121,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 3f1fdf4..d585a81 100644 --- a/spec/classes/ceilometer_agent_polling_spec.rb +++ b/spec/classes/ceilometer_agent_polling_spec.rb @@ -83,15 +83,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