Allow customization of db sync command line

Add $extra_params parameter to keystone::db::sync class to allow
end-users to add command line parameters to the db_sync command.

Change-Id: I3965a4d0d4974e7ee925c99207d4d6d4510a517f
Closes-bug: 1472740
This commit is contained in:
Mike Dorman 2015-07-08 13:38:00 -06:00
parent aee4a8f8fc
commit ea12fb2d54
3 changed files with 49 additions and 1 deletions

View File

@ -1,8 +1,20 @@
#
# Class to execute "keystone-manage db_sync
#
class keystone::db::sync {
# == Parameters
#
# [*extra_params*]
# (optional) String of extra command line parameters to append
# to the keystone-manage db_sync command. These will be
# inserted in the command line between 'keystone-manage' and
# 'db_sync' in the command line.
# Defaults to ''
#
class keystone::db::sync(
$extra_params = undef,
) {
exec { 'keystone-manage db_sync':
command => "keystone-manage ${extra_params} db_sync",
path => '/usr/bin',
user => 'keystone',
refreshonly => true,

View File

@ -0,0 +1,35 @@
require 'spec_helper'
describe 'keystone::db::sync' do
describe 'with only required params' do
it {
is_expected.to contain_exec('keystone-manage db_sync').with(
:command => 'keystone-manage db_sync',
:user => 'keystone',
:refreshonly => true,
:subscribe => ['Package[keystone]', 'Keystone_config[database/connection]'],
:require => 'User[keystone]'
)
}
end
describe "overriding extra_params" do
let :params do
{
:extra_params => '--config-file /etc/keystone/keystone.conf',
}
end
it {
is_expected.to contain_exec('keystone-manage db_sync').with(
:command => 'keystone-manage --config-file /etc/keystone/keystone.conf db_sync',
:user => 'keystone',
:refreshonly => true,
:subscribe => ['Package[keystone]', 'Keystone_config[database/connection]'],
:require => 'User[keystone]'
)
}
end
end

View File

@ -136,6 +136,7 @@ describe 'keystone' do
it 'should synchronize the db if $sync_db is true' do
if param_hash['sync_db']
is_expected.to contain_exec('keystone-manage db_sync').with(
:command => 'keystone-manage db_sync',
:user => 'keystone',
:refreshonly => true,
:subscribe => ['Package[keystone]', 'Keystone_config[database/connection]'],