allow to specify drivername for postgresql db

Change-Id: Idbac640aba8f4c87ae43df3a7019bf465895ca43
This commit is contained in:
Benedikt Trefzer 2017-10-22 15:32:48 +02:00
parent f32c680d5e
commit 06c9e77139
3 changed files with 15 additions and 2 deletions

View File

@ -138,7 +138,7 @@ define oslo::db(
if !is_service_default($connection) {
validate_re($connection,
'^(sqlite|mysql(\+pymysql)?|postgresql|mongodb):\/\/(\S+:\S+@\S+\/\S+)?')
'^(sqlite|mysql(\+pymysql)?|postgresql(\+psycopg2)?|mongodb):\/\/(\S+:\S+@\S+\/\S+)?')
if $manage_backend_package {
case $connection {
@ -151,7 +151,7 @@ define oslo::db(
$backend_package = false
}
}
/^postgresql:\/\//: {
/^postgresql(\+psycopg2)?:\/\//: {
$backend_package = false
require '::postgresql::lib::python'
}

View File

@ -0,0 +1,5 @@
---
features:
- allow to specify a full dbname+drivername://
protocol URL for postgresql databases.

View File

@ -143,6 +143,14 @@ describe 'oslo::db' do
end
end
context 'with postgresql backend + drivername' do
let :params do
{ :connection => 'postgresql+psycopg2://db:db@localhost/db' }
end
it { is_expected.to contain_keystone_config('database/connection').with_value('postgresql+psycopg2://db:db@localhost/db').with_secret(true) }
end
context 'with incorrect database_connection string' do
let :params do
{ :connection => 'foo://db:db@localhost/db', }