From 2498a42fc0a8d3a16e74eed440ec27ff63e9b1eb Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Sun, 24 Aug 2014 11:20:45 +0200 Subject: [PATCH] nosql: set manage_package_repo to false on RH/CentOS MongoDB repository provides packages that do not support systemd correctly on RHEL & CentOS, so we switched to RHCL & EPEL to have RH supported packages. When using them, we have to modify the way to use puppetlabs-mongodb by disabling manage_package_repo to have good parameters. For Debian & Ubuntu, no change this we continue to pin mongodb packages to have recent ones. This patch is only updating the way to use mongodb module on RH/CentOS. Signed-off-by: Emilien Macchi --- manifests/database/nosql.pp | 11 ++++++++++- spec/classes/cloud_database_nosql_spec.rb | 16 +++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/manifests/database/nosql.pp b/manifests/database/nosql.pp index 7c3d5e87..d6303cbc 100644 --- a/manifests/database/nosql.pp +++ b/manifests/database/nosql.pp @@ -45,8 +45,17 @@ class cloud::database::nosql( $array_bind_ip = any2array($bind_ip) $array_replset_members = any2array($replset_members) + # Red Hat & CentOS use packages from RHCL or EPEL to support systemd + # so manage_package_repo should be at false regarding to mongodb module + if $::osfamily == 'RedHat' { + $manage_package_repo = false + } else { + # Debian & Ubuntu are picked from mongodb repo to get recent version + $manage_package_repo = true + } + class { 'mongodb::globals': - manage_package_repo => true + manage_package_repo => $manage_package_repo }-> class { 'mongodb': bind_ip => $array_bind_ip, diff --git a/spec/classes/cloud_database_nosql_spec.rb b/spec/classes/cloud_database_nosql_spec.rb index 36fa1bb7..ff00ebeb 100644 --- a/spec/classes/cloud_database_nosql_spec.rb +++ b/spec/classes/cloud_database_nosql_spec.rb @@ -29,7 +29,7 @@ describe 'cloud::database::nosql' do end it 'configure mongodb server' do - should contain_class('mongodb::globals').with( :manage_package_repo => true) + should contain_class('mongodb::globals').with( :manage_package_repo => platform_params[:manage_package_repo]) should contain_class('mongodb::globals').with_before('Class[Mongodb]') should contain_class('mongodb').with( :bind_ip => ['10.0.0.1'], @@ -54,10 +54,12 @@ describe 'cloud::database::nosql' do context 'on Debian platforms' do let :facts do - { - :osfamily => 'Debian', - :lsbdistid => 'Debian' - } + { :osfamily => 'Debian', + :lsbdistid => 'Debian' } + end + + let :platform_params do + { :manage_package_repo => true } end it_configures 'openstack database nosql' @@ -68,6 +70,10 @@ describe 'cloud::database::nosql' do { :osfamily => 'RedHat' } end + let :platform_params do + { :manage_package_repo => false } + end + it_configures 'openstack database nosql' end