]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
polling: Ensure unused parameters are cleared
authorTakashi Kajinami <tkajinam@redhat.com>
Tue, 3 May 2022 15:48:48 +0000 (00:48 +0900)
committerTakashi Kajinami <tkajinam@redhat.com>
Thu, 23 Mar 2023 16:04:37 +0000 (16:04 +0000)
... instead of leaving the parameters unmanaged.

Change-Id: I0eeb25b131385ad4448fc8cec04efbdce0b7d87a
(cherry picked from commit 2c48365980cd93de53aa17f25dc2531c8bcbfc6e)

manifests/agent/polling.pp
spec/classes/ceilometer_agent_polling_spec.rb

index 734ce95143c25298cc2612b0d6705a6816e1bca1..9360d5fa05441d27b2a98d98610dd33e14c029b5 100644 (file)
@@ -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, ',')
     }
   }
 
index 06fbbd94001408e115c9ab245f38eb0fbb2eb874..32d450d7b4be88ac8a558648c1c6ec3397fdac8c 100644 (file)
@@ -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 )