remove legacy db connection check with proper types
- includes new type check for slave type Change-Id: I170e46d65abe3399e69a33dabbe59b44adc90337
This commit is contained in:
parent
386021e502
commit
6ca03a90c4
|
@ -109,13 +109,13 @@
|
||||||
#
|
#
|
||||||
define oslo::db(
|
define oslo::db(
|
||||||
$config = $name,
|
$config = $name,
|
||||||
$config_group = 'database',
|
String[1] $config_group = 'database',
|
||||||
$sqlite_synchronous = $facts['os_service_default'],
|
$sqlite_synchronous = $facts['os_service_default'],
|
||||||
$backend = $facts['os_service_default'],
|
$backend = $facts['os_service_default'],
|
||||||
Boolean $manage_backend_package = true,
|
Boolean $manage_backend_package = true,
|
||||||
$backend_package_ensure = present,
|
$backend_package_ensure = present,
|
||||||
$connection = $facts['os_service_default'],
|
Oslo::Dbconn $connection = $facts['os_service_default'],
|
||||||
$slave_connection = $facts['os_service_default'],
|
Oslo::Dbconn $slave_connection = $facts['os_service_default'],
|
||||||
$mysql_sql_mode = $facts['os_service_default'],
|
$mysql_sql_mode = $facts['os_service_default'],
|
||||||
$connection_recycle_time = $facts['os_service_default'],
|
$connection_recycle_time = $facts['os_service_default'],
|
||||||
$max_pool_size = $facts['os_service_default'],
|
$max_pool_size = $facts['os_service_default'],
|
||||||
|
@ -134,40 +134,33 @@ define oslo::db(
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include oslo::params
|
include oslo::params
|
||||||
if !is_service_default($connection) {
|
|
||||||
|
|
||||||
validate_legacy(Oslo::Dbconn, 'validate_re', $connection,
|
if $manage_backend_package {
|
||||||
['^(sqlite|mysql(\+pymysql)?|postgresql(\+psycopg2)?):\/\/(\S+:\S+@\S+\/\S+)?'])
|
case $connection {
|
||||||
|
Oslo::Dbconn::Mysql: {
|
||||||
if $manage_backend_package {
|
require 'mysql::bindings'
|
||||||
case $connection {
|
require 'mysql::bindings::python'
|
||||||
/^mysql(\+pymysql)?:\/\//: {
|
if $connection =~ /^mysql\+pymysql/ {
|
||||||
require 'mysql::bindings'
|
$backend_package = $::oslo::params::pymysql_package_name
|
||||||
require 'mysql::bindings::python'
|
} else {
|
||||||
if $connection =~ /^mysql\+pymysql/ {
|
$backend_package = undef
|
||||||
$backend_package = $::oslo::params::pymysql_package_name
|
|
||||||
} else {
|
|
||||||
$backend_package = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/^postgresql(\+psycopg2)?:\/\//: {
|
|
||||||
$backend_package = false
|
|
||||||
require 'postgresql::lib::python'
|
|
||||||
}
|
|
||||||
/^sqlite:\/\//: {
|
|
||||||
$backend_package = $::oslo::params::sqlite_package_name
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
fail('Unsupported backend configured')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Oslo::Dbconn::Postgres: {
|
||||||
|
$backend_package = undef
|
||||||
|
require 'postgresql::lib::python'
|
||||||
|
}
|
||||||
|
Oslo::Dbconn::Sqlite: {
|
||||||
|
$backend_package = $::oslo::params::sqlite_package_name
|
||||||
|
}
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
|
||||||
if $backend_package and !defined(Package[$backend_package]) {
|
if $backend_package and !defined(Package[$backend_package]) {
|
||||||
package { $backend_package:
|
package { $backend_package:
|
||||||
ensure => $backend_package_ensure,
|
ensure => $backend_package_ensure,
|
||||||
name => $backend_package,
|
name => $backend_package,
|
||||||
tag => 'openstack',
|
tag => 'openstack',
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'Oslo::Dbconn::Mysql' do
|
||||||
|
describe 'valid types' do
|
||||||
|
context 'with valid types' do
|
||||||
|
[
|
||||||
|
'mysql+pymysql://db:db@localhost/db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'invalid types' do
|
||||||
|
context 'with garbage inputs' do
|
||||||
|
[
|
||||||
|
'postgresql://db:db@localhost/db',
|
||||||
|
'postgresql+psycopg2://db:db@localhost/db',
|
||||||
|
'sqlite:///var/lib/db.db',
|
||||||
|
'mongodb://db:db@localhost/db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.not_to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'Oslo::Dbconn::Postgres' do
|
||||||
|
describe 'valid types' do
|
||||||
|
context 'with valid types' do
|
||||||
|
[
|
||||||
|
'postgresql://db:db@localhost/db',
|
||||||
|
'postgresql+psycopg2://db:db@localhost/db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'invalid types' do
|
||||||
|
context 'with garbage inputs' do
|
||||||
|
[
|
||||||
|
'mysql+pymysql://db:db@localhost/db',
|
||||||
|
'sqlite:///var/lib/db.db',
|
||||||
|
'mongodb://db:db@localhost/db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.not_to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -8,6 +8,7 @@ describe 'Oslo::Dbconn' do
|
||||||
'postgresql://db:db@localhost/db',
|
'postgresql://db:db@localhost/db',
|
||||||
'postgresql+psycopg2://db:db@localhost/db',
|
'postgresql+psycopg2://db:db@localhost/db',
|
||||||
'sqlite:///var/lib/db.db',
|
'sqlite:///var/lib/db.db',
|
||||||
|
'<SERVICE DEFAULT>',
|
||||||
].each do |value|
|
].each do |value|
|
||||||
describe value.inspect do
|
describe value.inspect do
|
||||||
it { is_expected.to allow_value(value) }
|
it { is_expected.to allow_value(value) }
|
||||||
|
@ -21,6 +22,7 @@ describe 'Oslo::Dbconn' do
|
||||||
[
|
[
|
||||||
'foo://db:db@localhost/db',
|
'foo://db:db@localhost/db',
|
||||||
'foo+pymysql://db:db@localhost/db',
|
'foo+pymysql://db:db@localhost/db',
|
||||||
|
'mongodb://db:db@localhost/db',
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
nil,
|
nil,
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'Oslo::Dbconn::Sqlite' do
|
||||||
|
describe 'valid types' do
|
||||||
|
context 'with valid types' do
|
||||||
|
[
|
||||||
|
'sqlite:///var/lib/db.db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'invalid types' do
|
||||||
|
context 'with garbage inputs' do
|
||||||
|
[
|
||||||
|
'mysql+pymysql://db:db@localhost/db',
|
||||||
|
'postgresql://db:db@localhost/db',
|
||||||
|
'postgresql+psycopg2://db:db@localhost/db',
|
||||||
|
'mongodb://db:db@localhost/db',
|
||||||
|
].each do |value|
|
||||||
|
describe value.inspect do
|
||||||
|
it { is_expected.not_to allow_value(value) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -1 +1,6 @@
|
||||||
type Oslo::Dbconn = Pattern[/^(sqlite|mysql(\+pymysql)?|postgresql(\+psycopg2)?):\/\/(\S+:\S+@\S+\/\S+)?/]
|
type Oslo::Dbconn = Variant[
|
||||||
|
Oslo::Dbconn::Sqlite,
|
||||||
|
Oslo::Dbconn::Mysql,
|
||||||
|
Oslo::Dbconn::Postgres,
|
||||||
|
Openstacklib::Servicedefault,
|
||||||
|
]
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
type Oslo::Dbconn::Mysql = Pattern[/^mysql(\+pymysql)?:\/\/(\S+:\S+@\S+\/\S+)?/]
|
|
@ -0,0 +1 @@
|
||||||
|
type Oslo::Dbconn::Postgres = Pattern[/^postgresql(\+psycopg2)?:\/\/(\S+:\S+@\S+\/\S+)?/]
|
|
@ -0,0 +1 @@
|
||||||
|
type Oslo::Dbconn::Sqlite = Pattern[/^sqlite:\/\//]
|
Loading…
Reference in New Issue