From: Sebastien Badia Date: Tue, 20 Oct 2015 13:37:09 +0000 (+0200) Subject: db: Use postgresql lib class for psycopg package X-Git-Tag: 7.0.0~11^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=0edd1257040a793cc3f16dffd29595f68d69c446;p=puppet-modules%2Fpuppet-ceilometer.git db: Use postgresql lib class for psycopg package This patch introduce the same design than mysql for postgresql by requiring dedicated lib::python class instead of declaring a new resource package within ceilometer module. Change-Id: Id01849badb4ed5aeae541d0ae7e0d47af5d1f245 --- diff --git a/manifests/db.pp b/manifests/db.pp index 99fb1d6..7a53bbe 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -71,7 +71,8 @@ class ceilometer::db ( require 'mysql::bindings::python' } /^postgresql:\/\//: { - $backend_package = $::ceilometer::params::psycopg_package_name + $backend_package = false + require 'postgresql::lib::python' } /^mongodb:\/\//: { $backend_package = $::ceilometer::params::pymongo_package_name diff --git a/manifests/params.pp b/manifests/params.pp index a192323..61bba12 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -27,7 +27,6 @@ class ceilometer::params { $alarm_notifier_service_name = 'openstack-ceilometer-alarm-notifier' $alarm_evaluator_service_name = 'openstack-ceilometer-alarm-evaluator' $pymongo_package_name = 'python-pymongo' - $psycopg_package_name = 'python-psycopg2' $agent_notification_service_name = 'openstack-ceilometer-notification' $ceilometer_wsgi_script_path = '/var/www/cgi-bin/ceilometer' $ceilometer_wsgi_script_source = '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi' @@ -55,7 +54,6 @@ class ceilometer::params { $alarm_evaluator_service_name = 'ceilometer-alarm-evaluator' # db packages $pymongo_package_name = 'python-pymongo' - $psycopg_package_name = 'python-psycopg2' $sqlite_package_name = 'python-pysqlite2' # Operating system specific diff --git a/spec/classes/ceilometer_db_spec.rb b/spec/classes/ceilometer_db_spec.rb index a52ff0a..552ca0b 100644 --- a/spec/classes/ceilometer_db_spec.rb +++ b/spec/classes/ceilometer_db_spec.rb @@ -60,11 +60,24 @@ describe 'ceilometer::db' do it_raises 'a Puppet::Error', /validate_re/ end + context 'with postgresql backend' do + let :params do + { :database_connection => 'postgresql://ceilometer:ceilometer@localhost/ceilometer', } + end + + it 'install the proper backend package' do + is_expected.to contain_package('python-psycopg2').with(:ensure => 'present') + end + end + end context 'on Debian platforms' do let :facts do - { :osfamily => 'Debian' } + { :osfamily => 'Debian', + :operatingsystem => 'Debian', + :operatingsystemrelease => 'jessie', + } end it_configures 'ceilometer::db' @@ -87,7 +100,9 @@ describe 'ceilometer::db' do context 'on Redhat platforms' do let :facts do - { :osfamily => 'RedHat' } + { :osfamily => 'RedHat', + :operatingsystemrelease => '7.1', + } end it_configures 'ceilometer::db'