forked from redhat-openstack/openstack-puppet-modules
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update manila to b77f1736bc0221acb433b5ffb6aa8f291d83ff13
b77f1736bc0221acb433b5ffb6aa8f291d83ff13 Merge "Fix typo and add wiki url in README.md" 65e400eb85567d03cd089e95f6f28fcbde3a6bf8 Remove class_parameter_defaults puppet-lint check 950d28e6f8e403355dabe074761fd3dd4a8e8e6f Fix typo and add wiki url in README.md 704a9d89fc11316d1381fdec4c212f864a3b9221 Update rspec tests for keystone 0a6008f7d1e9b30d03f16d04d27305bfe0839d90 Merge "db: Use postgresql lib class for psycopg package" a3c0b49a512d5f0902a1e3372f04c72599d63cfd db: Use postgresql lib class for psycopg package ea7b986df794710b159b152efb75f791c1ca71a9 Merge "Prepare 6.1.0 release" 3b9af407599bd5cead8eeae032fc85a8f59d1700 Prepare 6.1.0 release 6d52d91754a1c53825511b589c3079ddbc275050 Introduce manila::db class Change-Id: I6f99ddca53528ed9370898a14a246108b0ecde84
- Loading branch information
Showing
11 changed files
with
226 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# == Class: manila::db | ||
# | ||
# Configure the Manila database | ||
# | ||
# === Parameters | ||
# | ||
# [*database_connection*] | ||
# Url used to connect to database. | ||
# (Optional) Defaults to 'sqlite:////var/lib/manila/manila.sqlite'. | ||
# | ||
# [*database_idle_timeout*] | ||
# Timeout when db connections should be reaped. | ||
# (Optional) Defaults to 3600. | ||
# | ||
# [*database_min_pool_size*] | ||
# Minimum number of SQL connections to keep open in a pool. | ||
# (Optional) Defaults to 1. | ||
# | ||
# [*database_max_pool_size*] | ||
# Maximum number of SQL connections to keep open in a pool. | ||
# (Optional) Defaults to 10. | ||
# | ||
# [*database_max_retries*] | ||
# Maximum db connection retries during startup. | ||
# Setting -1 implies an infinite retry count. | ||
# (Optional) Defaults to 10. | ||
# | ||
# [*database_retry_interval*] | ||
# Interval between retries of opening a sql connection. | ||
# (Optional) Defaults to 10. | ||
# | ||
# [*database_max_overflow*] | ||
# If set, use this value for max_overflow with sqlalchemy. | ||
# (Optional) Defaults to 20. | ||
# | ||
class manila::db ( | ||
$database_connection = 'sqlite:////var/lib/manila/manila.sqlite', | ||
$database_idle_timeout = 3600, | ||
$database_min_pool_size = 1, | ||
$database_max_pool_size = 10, | ||
$database_max_retries = 10, | ||
$database_retry_interval = 10, | ||
$database_max_overflow = 20, | ||
) { | ||
|
||
# NOTE(spredzy): In order to keep backward compatibility we rely on the pick function | ||
# to use manila::<myparam> if manila::db::<myparam> isn't specified. | ||
$database_connection_real = pick($::manila::sql_connection, $database_connection) | ||
$database_idle_timeout_real = pick($::manila::sql_idle_timeout, $database_idle_timeout) | ||
$database_min_pool_size_real = pick($::manila::database_min_pool_size, $database_min_pool_size) | ||
$database_max_pool_size_real = pick($::manila::database_max_pool_size, $database_max_pool_size) | ||
$database_max_retries_real = pick($::manila::database_max_retries, $database_max_retries) | ||
$database_retry_interval_real = pick($::manila::database_retry_interval, $database_retry_interval) | ||
$database_max_overflow_real = pick($::manila::database_max_overflow, $database_max_overflow) | ||
|
||
validate_re($database_connection_real, | ||
'(sqlite|mysql|postgresql):\/\/(\S+:\S+@\S+\/\S+)?') | ||
|
||
if $database_connection_real { | ||
case $database_connection_real { | ||
/^mysql:\/\//: { | ||
$backend_package = false | ||
require 'mysql::bindings' | ||
require 'mysql::bindings::python' | ||
} | ||
/^postgresql:\/\//: { | ||
$backend_package = false | ||
require 'postgresql::lib::python' | ||
} | ||
/^sqlite:\/\//: { | ||
$backend_package = $::manila::params::sqlite_package_name | ||
} | ||
default: { | ||
fail('Unsupported backend configured') | ||
} | ||
} | ||
|
||
if $backend_package and !defined(Package[$backend_package]) { | ||
package {'manila-backend-package': | ||
ensure => present, | ||
name => $backend_package, | ||
tag => 'openstack', | ||
} | ||
} | ||
|
||
manila_config { | ||
'database/connection': value => $database_connection_real, secret => true; | ||
'database/idle_timeout': value => $database_idle_timeout_real; | ||
'database/min_pool_size': value => $database_min_pool_size_real; | ||
'database/max_retries': value => $database_max_retries_real; | ||
'database/retry_interval': value => $database_retry_interval_real; | ||
'database/max_pool_size': value => $database_max_pool_size_real; | ||
'database/max_overflow': value => $database_max_overflow_real; | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
require 'spec_helper' | ||
|
||
describe 'manila::db' do | ||
|
||
shared_examples 'manila::db' do | ||
|
||
context 'with default parameters' do | ||
|
||
it { is_expected.to contain_manila_config('database/connection').with_value('sqlite:////var/lib/manila/manila.sqlite').with_secret(true) } | ||
it { is_expected.to contain_manila_config('database/idle_timeout').with_value('3600') } | ||
it { is_expected.to contain_manila_config('database/min_pool_size').with_value('1') } | ||
it { is_expected.to contain_manila_config('database/max_pool_size').with_value('10') } | ||
it { is_expected.to contain_manila_config('database/max_overflow').with_value('20') } | ||
it { is_expected.to contain_manila_config('database/max_retries').with_value('10') } | ||
it { is_expected.to contain_manila_config('database/retry_interval').with_value('10') } | ||
|
||
end | ||
|
||
context 'with specific parameters' do | ||
let :params do | ||
{ :database_connection => 'mysql://manila:manila@localhost/manila', | ||
:database_idle_timeout => '3601', | ||
:database_min_pool_size => '2', | ||
:database_max_pool_size => '21', | ||
:database_max_retries => '11', | ||
:database_max_overflow => '21', | ||
:database_retry_interval => '11', } | ||
end | ||
|
||
it { is_expected.to contain_manila_config('database/connection').with_value('mysql://manila:manila@localhost/manila').with_secret(true) } | ||
it { is_expected.to contain_manila_config('database/idle_timeout').with_value('3601') } | ||
it { is_expected.to contain_manila_config('database/min_pool_size').with_value('2') } | ||
it { is_expected.to contain_manila_config('database/max_retries').with_value('11') } | ||
it { is_expected.to contain_manila_config('database/max_pool_size').with_value('21') } | ||
it { is_expected.to contain_manila_config('database/max_overflow').with_value('21') } | ||
it { is_expected.to contain_manila_config('database/retry_interval').with_value('11') } | ||
|
||
end | ||
|
||
context 'with postgresql backend' do | ||
let :params do | ||
{ :database_connection => 'postgresql://manila:manila@localhost/manila', } | ||
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://manila:manila@localhost/manila', } | ||
end | ||
|
||
it_raises 'a Puppet::Error', /validate_re/ | ||
end | ||
|
||
end | ||
|
||
context 'on Debian platforms' do | ||
let :facts do | ||
{ :osfamily => 'Debian', | ||
:operatingsystem => 'Debian', | ||
:operatingsystemrelease => 'jessie', | ||
} | ||
end | ||
|
||
it_configures 'manila::db' | ||
end | ||
|
||
context 'on Redhat platforms' do | ||
let :facts do | ||
{ :osfamily => 'RedHat', | ||
:operatingsystemrelease => '7.1', | ||
} | ||
end | ||
|
||
it_configures 'manila::db' | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.