Migrate postgresql backend to use openstacklib::db::postgresql

Let migrate to the new openstacklib::db::postgresql helper for
postgresql backend. This commit also unpin postgresql fixture
(openstacklib support now the latest version of postgre module).

Change-Id: If748f8ff57d8aece1b4050bc4b841495088b2972
Implements: blueprint commmon-openstack-database-resource
This commit is contained in:
Sebastien Badia 2014-12-30 21:54:00 +01:00
parent 2abfb25c9b
commit ac2d812862
3 changed files with 83 additions and 43 deletions

View File

@ -9,8 +9,6 @@ fixtures:
'openstacklib': 'git://github.com/stackforge/puppet-openstacklib.git' 'openstacklib': 'git://github.com/stackforge/puppet-openstacklib.git'
'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git' 'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
'inifile': 'git://github.com/puppetlabs/puppetlabs-inifile' 'inifile': 'git://github.com/puppetlabs/puppetlabs-inifile'
'postgresql': 'postgresql': 'git://github.com/puppetlabs/puppetlabs-postgresql.git'
repo: 'git://github.com/puppetlabs/puppetlabs-postgresql.git'
ref: '2.5.0'
symlinks: symlinks:
'keystone': "#{source_dir}" 'keystone': "#{source_dir}"

View File

@ -1,47 +1,57 @@
# == Class: keystone::db::postgresql
# #
# implements postgresql backend for keystone # Class that configures postgresql for keystone
# Requires the Puppetlabs postgresql module.
# #
# This class can be used to create tables, users and grant
# privelege for a postgresql keystone database.
#
# Requires Puppetlabs Postgresql module.
#
# [*Parameters*]
#
# [password] Password that will be used for the keystone db user.
# Optional. Defaults to: 'keystone_default_password'
#
# [dbname] Name of keystone database. Optional. Defaults to keystone.
#
# [user] Name of keystone user. Optional. Defaults to keystone.
#
# == Dependencies
# Class['postgresql::server']
#
# == Examples
# == Authors # == Authors
# #
# Stackforge Contributors puppet-openstack@puppetlabs.com
# Etienne Pelletier epelletier@morphlabs.com # Etienne Pelletier epelletier@morphlabs.com
# #
# == Copyright # == Copyright
# #
# Copyright 2013-2014 Stackforge Contributors
# Copyright 2012 Etienne Pelletier, unless otherwise noted. # Copyright 2012 Etienne Pelletier, unless otherwise noted.
# #
# === Parameters
#
# [*password*]
# (Required) Password to connect to the database.
#
# [*dbname*]
# (Optional) Name of the database.
# Defaults to 'keystone'.
#
# [*user*]
# (Optional) User to connect to the database.
# Defaults to 'keystone'.
#
# [*encoding*]
# (Optional) The charset to use for the database.
# Default to undef.
#
# [*privileges*]
# (Optional) Privileges given to the database user.
# Default to 'ALL'
#
class keystone::db::postgresql( class keystone::db::postgresql(
$password, $password,
$dbname = 'keystone', $dbname = 'keystone',
$user = 'keystone' $user = 'keystone',
$encoding = undef,
$privileges = 'ALL',
) { ) {
Class['keystone::db::postgresql'] -> Service<| title == 'keystone' |> Class['keystone::db::postgresql'] -> Service<| title == 'keystone' |>
require postgresql::python ::openstacklib::db::postgresql { 'keystone':
password_hash => postgresql_password($user, $password),
postgresql::db { $dbname: dbname => $dbname,
user => $user, user => $user,
password => $password, encoding => $encoding,
privileges => $privileges,
} }
Postgresql::Db[$dbname] ~> Exec<| title == 'keystone-manage db_sync' |> ::Openstacklib::Db::Postgresql['keystone'] ~> Exec<| title == 'keystone-manage db_sync' |>
} }

View File

@ -3,24 +3,56 @@ require 'spec_helper'
describe 'keystone::db::postgresql' do describe 'keystone::db::postgresql' do
let :req_params do let :req_params do
{:password => 'pw'} { :password => 'pw' }
end end
let :facts do let :pre_condition do
{ 'include postgresql::server'
:postgres_default_version => '8.4',
:osfamily => 'RedHat',
}
end end
describe 'with only required params' do context 'on a RedHat osfamily' do
let :params do let :facts do
req_params {
:osfamily => 'RedHat',
:operatingsystemrelease => '7.0',
:concat_basedir => '/var/lib/puppet/concat'
}
end end
it { should contain_postgresql__db('keystone').with(
:user => 'keystone', context 'with only required parameters' do
:password => 'pw' let :params do
) } req_params
end
it { should contain_postgresql__server__db('keystone').with(
:user => 'keystone',
:password => 'md5c530c33636c58ae83ca933f39319273e'
)}
end
end
context 'on a Debian osfamily' do
let :facts do
{
:operatingsystemrelease => '7.8',
:operatingsystem => 'Debian',
:osfamily => 'Debian',
:concat_basedir => '/var/lib/puppet/concat'
}
end
context 'with only required parameters' do
let :params do
req_params
end
it { should contain_postgresql__server__db('keystone').with(
:user => 'keystone',
:password => 'md5c530c33636c58ae83ca933f39319273e'
)}
end
end end
end end