From 0be4a414861e67101eb1575064824b98639430d1 Mon Sep 17 00:00:00 2001 From: Sebastien Badia Date: Tue, 20 Oct 2015 16:27:14 +0200 Subject: [PATCH] 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 heat module. Change-Id: I386e61054e84b14d25afebb4aa415ab2b6161a57 --- manifests/db.pp | 3 ++- manifests/params.pp | 2 -- spec/classes/heat_db_spec.rb | 20 ++++++++++++++++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/manifests/db.pp b/manifests/db.pp index 7d1fce5d..975308d8 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -70,7 +70,8 @@ class heat::db ( require 'mysql::bindings::python' } /^postgresql:\/\//: { - $backend_package = $::heat::params::psycopg_package_name + $backend_package = false + require 'postgresql::lib::python' } /^sqlite:\/\//: { $backend_package = $::heat::params::sqlite_package_name diff --git a/manifests/params.pp b/manifests/params.pp index 3de05060..d8b4830e 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -16,7 +16,6 @@ class heat::params { $engine_package_name = 'openstack-heat-engine' $client_package_name = 'python-heatclient' $common_package_name = 'openstack-heat-common' - $psycopg_package_name = 'python-psycopg2' $sqlite_package_name = undef # service names $api_service_name = 'openstack-heat-api' @@ -32,7 +31,6 @@ class heat::params { $engine_package_name = 'heat-engine' $client_package_name = 'python-heatclient' $common_package_name = 'heat-common' - $psycopg_package_name = 'python-psycopg2' $sqlite_package_name = 'python-pysqlite2' # service names $api_service_name = 'heat-api' diff --git a/spec/classes/heat_db_spec.rb b/spec/classes/heat_db_spec.rb index 78fffd72..512fd0ce 100644 --- a/spec/classes/heat_db_spec.rb +++ b/spec/classes/heat_db_spec.rb @@ -34,6 +34,17 @@ describe 'heat::db' do end + context 'with postgresql backend' do + let :params do + { :database_connection => 'postgresql://heat:heat@localhost/heat', } + end + + it 'install the proper backend package' do + is_expected.to contain_package('python-psycopg2').with(:ensure => 'present') + end + + end + context 'with incorrect database_connection string' do let :params do { :database_connection => 'redis://heat:heat@localhost/heat', } @@ -46,7 +57,10 @@ describe 'heat::db' do context 'on Debian platforms' do let :facts do - { :osfamily => 'Debian' } + { :osfamily => 'Debian', + :operatingsystem => 'Debian', + :operatingsystemrelease => 'jessie', + } end it_configures 'heat::db' @@ -54,7 +68,9 @@ describe 'heat::db' do context 'on Redhat platforms' do let :facts do - { :osfamily => 'RedHat' } + { :osfamily => 'RedHat', + :operatingsystemrelease => '7.1', + } end it_configures 'heat::db'