Skip to content

Commit

Permalink
Update manila to b77f1736bc0221acb433b5ffb6aa8f291d83ff13
Browse files Browse the repository at this point in the history
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
xbezdick committed Nov 25, 2015
1 parent cc73eb4 commit ce97dd1
Show file tree
Hide file tree
Showing 11 changed files with 226 additions and 40 deletions.
2 changes: 1 addition & 1 deletion Puppetfile
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ mod 'keystone',
:git => 'https://github.com/openstack/puppet-keystone.git'

mod 'manila',
:commit => '3122525fe061364450e2e37cb293d24b2a3f2e5c',
:commit => 'b77f1736bc0221acb433b5ffb6aa8f291d83ff13',
:git => 'https://github.com/openstack/puppet-manila.git'

mod 'memcached',
Expand Down
8 changes: 8 additions & 0 deletions manila/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
##2015-10-10 - 6.1.0
### Summary

This is a maintenance release in the Kilo series.

####Maintenance
- acceptance: checkout stable/kilo puppet modules

##2015-07-08 - 6.0.0
###Summary

Expand Down
6 changes: 3 additions & 3 deletions manila/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
manila
=======

6.0.0 - 2015.1.0 - Kilo
6.1.0 - 2015.1.0 - Kilo

#### Table of Contents

Expand All @@ -15,7 +15,7 @@ manila
Overview
--------

The manila module is part of [OpenStack](https://github.com/openstack), an effort by the OpenStack infrastructure team to provide continuous integration testing and code review for OpenStack and OpenStack community projects as part of the core software. The module its self is used to flexibly configure and manage the file system service for OpenStack.
The manila module is part of [OpenStack](https://github.com/openstack), an effort by the OpenStack infrastructure team to provide continuous integration testing and code review for OpenStack and OpenStack community projects as part of the core software. The module itself is used to flexibly configure and manage the file system service for OpenStack.

Module Description
------------------
Expand All @@ -29,7 +29,7 @@ Setup

**What the manila module affects**

* manila, the file system service for OpenStack.
* [Manila](https://wiki.openstack.org/wiki/Manila), the file system service for OpenStack.

### Installing manila

Expand Down
2 changes: 1 addition & 1 deletion manila/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ PuppetLint::RakeTask.new :lint do |config|
config.ignore_paths = ["spec/**/*.pp", "vendor/**/*.pp"]
config.fail_on_warnings = true
config.log_format = '%{path}:%{linenumber}:%{KIND}: %{message}'
config.disable_checks = ["80chars", "class_inherits_from_params_class", "class_parameter_defaults", "only_variable_string"]
config.disable_checks = ["80chars", "class_inherits_from_params_class", "only_variable_string"]
end

desc "Run acceptance tests"
Expand Down
97 changes: 97 additions & 0 deletions manila/manifests/db.pp
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;
}
}

}
49 changes: 31 additions & 18 deletions manila/manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,32 @@
#
# [*sql_connection*]
# Url used to connect to database.
# (Optional) Defaults to
# 'sqlite:////var/lib/manila/manila.sqlite'
# (Optional) Defaults to undef.
#
# [*sql_idle_timeout*]
# Timeout when db connections should be reaped.
# (Optional) Defaults to 3600.
# (Optional) Defaults to undef.
#
# [*database_retry_interval*]
# (optional) Interval between retries of opening a database connection.
# (Defaults to undef)
#
# [*database_min_pool_size*]
# (optional) Minimum number of SQL connections to keep open in a pool.
# Defaults to undef.
#
# [*database_max_pool_size*]
# (optional) Maximum number of SQL connections to keep open in a pool.
# Defaults to undef.
#
# [*database_max_retries*]
# Maximum db connection retries during startup.
# Setting -1 implies an infinite retry count.
# (Optional) Defaults to undef.
#
# [*database_max_overflow*]
# (optional) If set, use this value for max_overflow with sqlalchemy.
# Defaults to undef.
#
# [*state_path*]
# (optional) Directory for storing state.
Expand Down Expand Up @@ -248,8 +268,13 @@


class manila (
$sql_connection = 'sqlite:////var/lib/manila/manila.sqlite',
$sql_idle_timeout = '3600',
$sql_connection = undef,
$sql_idle_timeout = undef,
$database_max_retries = undef,
$database_retry_interval = undef,
$database_min_pool_size = undef,
$database_max_pool_size = undef,
$database_max_overflow = undef,
$rpc_backend = 'rabbit',
$control_exchange = 'openstack',
$notification_driver = 'messaging',
Expand Down Expand Up @@ -308,6 +333,7 @@
$amqp_ssl_key_password = undef,
) {

include ::manila::db
include ::manila::logging
include ::manila::params

Expand Down Expand Up @@ -498,8 +524,6 @@


manila_config {
'DEFAULT/sql_connection': value => $sql_connection, secret => true;
'DEFAULT/sql_idle_timeout': value => $sql_idle_timeout;
'DEFAULT/api_paste_config': value => $api_paste_config;
'DEFAULT/rpc_backend': value => $rpc_backend;
'DEFAULT/storage_availability_zone': value => $storage_availability_zone;
Expand All @@ -509,17 +533,6 @@
'oslo_concurrency/lock_path': value => $lock_path;
}

if($sql_connection =~ /mysql:\/\/\S+:\S+@\S+\/\S+/) {
require 'mysql::bindings'
require 'mysql::bindings::python'
} elsif($sql_connection =~ /postgresql:\/\/\S+:\S+@\S+\/\S+/) {

} elsif($sql_connection =~ /sqlite:\/\//) {

} else {
fail("Invalid db connection ${sql_connection}")
}

# SSL Options
if $use_ssl {
manila_config {
Expand Down
2 changes: 2 additions & 0 deletions manila/manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
$lio_package_name = 'targetcli'
$gluster_client_package_name = 'glusterfs-client'
$gluster_package_name = 'glusterfs-common'
$sqlite_package_name = 'python-pysqlite2'

} elsif($::osfamily == 'RedHat') {

Expand All @@ -39,6 +40,7 @@
$lio_package_name = 'targetcli'
$gluster_client_package_name = 'glusterfs-fuse'
$gluster_package_name = 'glusterfs'
$sqlite_package_name = undef

if $::operatingsystem == 'RedHat' and (versioncmp($::operatingsystemmajrelease, '7') >= 0) {
$iscsi_helper = 'lioadm'
Expand Down
2 changes: 1 addition & 1 deletion manila/metadata.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "openstack-manila",
"version": "6.0.0",
"version": "6.1.0",
"author": "NetApp and OpenStack Contributors",
"summary": "Puppet module for OpenStack Manila",
"license": "Apache-2.0",
Expand Down
82 changes: 82 additions & 0 deletions manila/spec/classes/manila_db_spec.rb
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
1 change: 0 additions & 1 deletion manila/spec/classes/manila_keystone_auth_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
:ensure => 'present',
:password => 'pw',
:email => 'manila@localhost',
:tenant => 'services'
)
is_expected.to contain_keystone_user_role('manila@services').with(
:ensure => 'present',
Expand Down
Loading

0 comments on commit ce97dd1

Please sign in to comment.