]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
db: Use postgresql lib class for psycopg package
authorSebastien Badia <sbadia@redhat.com>
Tue, 20 Oct 2015 13:37:09 +0000 (15:37 +0200)
committerSebastien Badia <sbadia@redhat.com>
Tue, 20 Oct 2015 13:37:09 +0000 (15:37 +0200)
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

manifests/db.pp
manifests/params.pp
spec/classes/ceilometer_db_spec.rb

index 99fb1d6727e41d8ffedceafebf0709e4a955e7c0..7a53bbe00ed30e4cd767a4dd5e4df1b6c711df63 100644 (file)
@@ -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
index a1923230bb7031e7d9829f9509f93172edba6822..61bba1229d20271e88c8aedb3e5639e4cc12bc7c 100644 (file)
@@ -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
index a52ff0ab5c31da05b1ed905eccd188e6aa556c07..552ca0b7cd869e745d018563b193902dd9a1c12c 100644 (file)
@@ -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'