From: Benedikt Trefzer Date: Fri, 28 Feb 2014 14:23:18 +0000 (+0100) Subject: fix alarm_package_name for Debian/Ubuntu (only havana) X-Git-Tag: 3.1.1~2^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=7e4f4dc896c1277cc9f9f8fc34486fdd5a69401b;p=puppet-modules%2Fpuppet-ceilometer.git fix alarm_package_name for Debian/Ubuntu (only havana) - 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 --- diff --git a/manifests/alarm/evaluator.pp b/manifests/alarm/evaluator.pp index 2621534..9c36198 100644 --- a/manifests/alarm/evaluator.pp +++ b/manifests/alarm/evaluator.pp @@ -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' diff --git a/manifests/alarm/notifier.pp b/manifests/alarm/notifier.pp index 1b09baa..10d4c68 100644 --- a/manifests/alarm/notifier.pp +++ b/manifests/alarm/notifier.pp @@ -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' diff --git a/manifests/init.pp b/manifests/init.pp index 10e2100..32bb423 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -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<||> diff --git a/manifests/params.pp b/manifests/params.pp index b66f01f..4f64ac3 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -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'] } } } diff --git a/spec/classes/ceilometer_alarm_evaluator_spec.rb b/spec/classes/ceilometer_alarm_evaluator_spec.rb index 82dc495..8f4380a 100644 --- a/spec/classes/ceilometer_alarm_evaluator_spec.rb +++ b/spec/classes/ceilometer_alarm_evaluator_spec.rb @@ -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 diff --git a/spec/classes/ceilometer_alarm_notifier_spec.rb b/spec/classes/ceilometer_alarm_notifier_spec.rb index f07bfe0..3722abf 100644 --- a/spec/classes/ceilometer_alarm_notifier_spec.rb +++ b/spec/classes/ceilometer_alarm_notifier_spec.rb @@ -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