]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
fix alarm_package_name for Debian/Ubuntu (only havana)
authorBenedikt Trefzer <benedikt.trefzer@cirrax.com>
Fri, 28 Feb 2014 14:23:18 +0000 (15:23 +0100)
committerBenedikt Trefzer <benedikt.trefzer@cirrax.com>
Sat, 1 Mar 2014 10:49:47 +0000 (11:49 +0100)
  - Debian uses separate packages in havana
  - Ubuntu uses ceilometer-common which conflicts with init.pp
  - separate tests for Ubuntu/Debian (for alarm*)
  - Change-Id: I91098bd3f13ee4391dcf1b870705c0a0c5566acc
    introduced this troubles.

Change-Id: I8d396131386e5469eb6d7d43d7c6a7354abed31a

manifests/alarm/evaluator.pp
manifests/alarm/notifier.pp
manifests/init.pp
manifests/params.pp
spec/classes/ceilometer_alarm_evaluator_spec.rb
spec/classes/ceilometer_alarm_notifier_spec.rb

index 2621534910e28c6e6b09c48d55662d262bc49fd6..9c36198c8c3203c59921159ad324da5a31d306cb 100644 (file)
@@ -28,7 +28,16 @@ class ceilometer::alarm::evaluator (
 
   Package[$::ceilometer::params::alarm_package_name] -> Service['ceilometer-alarm-evaluator']
   Package[$::ceilometer::params::alarm_package_name] -> Package<| title == 'ceilometer-alarm' |>
-  ensure_packages($::ceilometer::params::alarm_package_name)
+
+  # Workaround for Ubuntu havana, where alarm_package_name = common_package_name
+  if ( $::ceilometer::params::common_package_name in $::ceilometer::params::alarm_package_name)
+  {
+    if ! defined(Package[$::ceilometer::params::common_package_name]) {
+      package{$::ceilometer::params::common_package_name : }
+    }
+  } else {
+    ensure_packages($::ceilometer::params::alarm_package_name)
+  }
 
   if $enabled {
     $service_ensure = 'running'
index 1b09baaf18885704c6ad673d83eee910be6af8ef..10d4c68b7a0dae8b51e485cc1bb68824fb6264b2 100644 (file)
@@ -29,7 +29,14 @@ class ceilometer::alarm::notifier (
 
   Package[$::ceilometer::params::alarm_package_name] -> Service['ceilometer-alarm-notifier']
   Package[$::ceilometer::params::alarm_package_name] -> Package<| title == 'ceilometer-alarm' |>
-  ensure_packages($::ceilometer::params::alarm_package_name)
+  # Workaround for Ubuntu havana, where alarm_package_name = common_package_name
+  if ( $::ceilometer::params::common_package_name in  $::ceilometer::params::alarm_package_name ) {
+    if ! defined(Package[$::ceilometer::params::common_package_name]) {
+      package{$::ceilometer::params::common_package_name : }
+    }
+  } else {
+    ensure_packages($::ceilometer::params::alarm_package_name)
+  }
 
   if $enabled {
     $service_ensure = 'running'
index 10e210070e2b31313db926c0d8499e3961b83d94..32bb423b87f25fecc1c248763ed7153d7bc3071e 100644 (file)
@@ -118,9 +118,11 @@ class ceilometer(
     mode    => '0640',
   }
 
-  package { 'ceilometer-common':
-    ensure => $package_ensure,
-    name   => $::ceilometer::params::common_package_name,
+  if ! defined(Package['ceilometer-common']) {
+    package { 'ceilometer-common':
+      ensure => $package_ensure,
+      name   => $::ceilometer::params::common_package_name,
+    }
   }
 
   Package['ceilometer-common'] -> Ceilometer_config<||>
index b66f01fed6298bf19b82a50e31c1cbd2c105f8aa..4f64ac3a07e83dffaa4a7e24ed34004babd2a077 100644 (file)
@@ -42,7 +42,6 @@ class ceilometer::params {
       $collector_package_name       = 'ceilometer-collector'
       $common_package_name          = 'ceilometer-common'
       $client_package_name          = 'python-ceilometerclient'
-      $alarm_package_name           = ['ceilometer-common']
       # service names
       $agent_central_service_name   = 'ceilometer-agent-central'
       $agent_compute_service_name   = 'ceilometer-agent-compute'
@@ -58,10 +57,12 @@ class ceilometer::params {
       # Operating system specific
       case $::operatingsystem {
         'Ubuntu': {
-          $libvirt_group = 'libvirtd'
+          $libvirt_group            = 'libvirtd'
+          $alarm_package_name       = ['ceilometer-common']
         }
         default: {
-          $libvirt_group = 'libvirt'
+          $libvirt_group            = 'libvirt'
+          $alarm_package_name       = ['ceilometer-alarm-notifier','ceilometer-alarm-evaluator']
         }
       }
     }
index 82dc495db006896c0b5a864f450942f513d58679..8f4380ad7d9914681c9d72257f963f361803bd1b 100644 (file)
@@ -72,9 +72,24 @@ describe 'ceilometer::alarm::evaluator' do
       end
   end
 
-  context 'on Debian platforms' do
+  context 'on Debian operating system' do
     let :facts do
-      { :osfamily => 'Debian' }
+      { :osfamily        => 'Debian',
+        :operatingsystem => 'Debian' }
+    end
+
+    let :platform_params do
+      { :alarm_evaluator_package_name => 'ceilometer-common',
+        :alarm_evaluator_service_name => 'ceilometer-alarm-evaluator' }
+    end
+
+    it_configures 'ceilometer-alarm-evaluator'
+  end
+
+  context 'on Ubuntu operating system' do
+    let :facts do
+      { :osfamily        => 'Debian',
+        :operatingsystem => 'Ubuntu' }
     end
 
     let :platform_params do
index f07bfe0dfadaf51240940f9ba4d56e8c2780bb4a..3722abf0da415aa2687068eec4cbccfd0d2d53db 100644 (file)
@@ -65,9 +65,24 @@ describe 'ceilometer::alarm::notifier' do
 
   end
 
-  context 'on Debian platforms' do
+  context 'on Debian operating system' do
     let :facts do
-      { :osfamily => 'Debian' }
+      { :osfamily        => 'Debian',
+        :operatingsystem => 'Debian' }
+    end
+
+    let :platform_params do
+      { :alarm_notifier_package_name => 'ceilometer-common',
+        :alarm_notifier_service_name => 'ceilometer-alarm-notifier' }
+    end
+
+    it_configures 'ceilometer-alarm-notifier'
+  end
+
+  context 'on Ubuntu operating system' do
+    let :facts do
+      { :osfamily        => 'Debian',
+        :operatingsystem => 'Ubuntu' }
     end
 
     let :platform_params do