Merge "remove legacy db connection check with proper types"

This commit is contained in:
Zuul
2023年07月28日 03:56:22 +00:00
committed by Gerrit Code Review

View File

@@ -113,13 +113,13 @@
#
defineoslo::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'],
@@ -139,40 +139,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_packageand!defined(Package[$backend_package]){
package { $backend_package:
ensure => $backend_package_ensure,
name => $backend_package,
tag => 'openstack',
}
if$backend_packageand!defined(Package[$backend_package]){
package { $backend_package:
ensure => $backend_package_ensure,
name => $backend_package,
tag => 'openstack',
}
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -1 +1,6 @@
typeOslo::Dbconn=Pattern[/^(sqlite|mysql(\+pymysql)?|postgresql(\+psycopg2)?):\/\/(\S+:\S+@\S+\/\S+)?/]
typeOslo::Dbconn=Variant[
Oslo::Dbconn::Sqlite,
Oslo::Dbconn::Mysql,
Oslo::Dbconn::Postgres,
Openstacklib::Servicedefault,
]

1
types/dbconn/mysql.pp Normal file
View File

@@ -0,0 +1 @@
typeOslo::Dbconn::Mysql=Pattern[/^mysql(\+pymysql)?:\/\/(\S+:\S+@\S+\/\S+)?/]

1
types/dbconn/postgres.pp Normal file
View File

@@ -0,0 +1 @@
typeOslo::Dbconn::Postgres=Pattern[/^postgresql(\+psycopg2)?:\/\/(\S+:\S+@\S+\/\S+)?/]

1
types/dbconn/sqlite.pp Normal file
View File

@@ -0,0 +1 @@
typeOslo::Dbconn::Sqlite=Pattern[/^sqlite:\/\//]
Reference in New Issue
openstack/puppet-oslo
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.

The note is not visible to the blocked user.