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(
|
||||
$config = $name,
|
||||
$config_group = 'database',
|
||||
String[1] $config_group = 'database',
|
||||
$sqlite_synchronous = $facts['os_service_default'],
|
||||
$backend = $facts['os_service_default'],
|
||||
Boolean $manage_backend_package = true,
|
||||
$backend_package_ensure = present,
|
||||
$connection = $facts['os_service_default'],
|
||||
$slave_connection = $facts['os_service_default'],
|
||||
Oslo::Dbconn $connection = $facts['os_service_default'],
|
||||
Oslo::Dbconn $slave_connection = $facts['os_service_default'],
|
||||
$mysql_sql_mode = $facts['os_service_default'],
|
||||
$connection_recycle_time = $facts['os_service_default'],
|
||||
$max_pool_size = $facts['os_service_default'],
|
||||
|
@ -134,40 +134,33 @@ define oslo::db(
|
|||
) {
|
||||
|
||||
include oslo::params
|
||||
if !is_service_default($connection) {
|
||||
|
||||
validate_legacy(Oslo::Dbconn, 'validate_re', $connection,
|
||||
['^(sqlite|mysql(\+pymysql)?|postgresql(\+psycopg2)?):\/\/(\S+:\S+@\S+\/\S+)?'])
|
||||
|
||||
if $manage_backend_package {
|
||||
case $connection {
|
||||
/^mysql(\+pymysql)?:\/\//: {
|
||||
require 'mysql::bindings'
|
||||
require 'mysql::bindings::python'
|
||||
if $connection =~ /^mysql\+pymysql/ {
|
||||
$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')
|
||||
if $manage_backend_package {
|
||||
case $connection {
|
||||
Oslo::Dbconn::Mysql: {
|
||||
require 'mysql::bindings'
|
||||
require 'mysql::bindings::python'
|
||||
if $connection =~ /^mysql\+pymysql/ {
|
||||
$backend_package = $::oslo::params::pymysql_package_name
|
||||
} else {
|
||||
$backend_package = undef
|
||||
}
|
||||
}
|
||||
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]) {
|
||||
package { $backend_package:
|
||||
ensure => $backend_package_ensure,
|
||||
name => $backend_package,
|
||||
tag => 'openstack',
|
||||
}
|
||||
if $backend_package and !defined(Package[$backend_package]) {
|
||||
package { $backend_package:
|
||||
ensure => $backend_package_ensure,
|
||||
name => $backend_package,
|
||||
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+psycopg2://db:db@localhost/db',
|
||||
'sqlite:///var/lib/db.db',
|
||||
'<SERVICE DEFAULT>',
|
||||
].each do |value|
|
||||
describe value.inspect do
|
||||
it { is_expected.to allow_value(value) }
|
||||
|
@ -21,6 +22,7 @@ describe 'Oslo::Dbconn' do
|
|||
[
|
||||
'foo://db:db@localhost/db',
|
||||
'foo+pymysql://db:db@localhost/db',
|
||||
'mongodb://db:db@localhost/db',
|
||||
true,
|
||||
false,
|
||||
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