Make heat parameter plugin_dirs configurable
Heat has an additional configuration for plugin_dirs parameter. This parameter provides a list of directories to search for plug-ins. This change allows configuration of plugin_dirs parameter in heat.conf file. This change will allow a user to set this value, if required. Else $::os_service_default will be used and the parameter will not be added to the config file, as it is done today. Change-Id: I636d52f867ee447eaf0e1e80bf9fdc30c91f4ec1
This commit is contained in:
parent
7870a0f8ff
commit
56cbd7c89b
@ -125,6 +125,10 @@
|
|||||||
# (Optional) Maximum depth allowed when using nested stacks.
|
# (Optional) Maximum depth allowed when using nested stacks.
|
||||||
# Defaults to $::os_service_default
|
# Defaults to $::os_service_default
|
||||||
#
|
#
|
||||||
|
# [*plugin_dirs*]
|
||||||
|
# (Optional) List of directories to search for plug-ins.
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
class heat::engine (
|
class heat::engine (
|
||||||
$auth_encryption_key,
|
$auth_encryption_key,
|
||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
@ -149,6 +153,7 @@ class heat::engine (
|
|||||||
$environment_dir = $::os_service_default,
|
$environment_dir = $::os_service_default,
|
||||||
$template_dir = $::os_service_default,
|
$template_dir = $::os_service_default,
|
||||||
$max_nested_stack_depth = $::os_service_default,
|
$max_nested_stack_depth = $::os_service_default,
|
||||||
|
$plugin_dirs = $::os_service_default,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include ::heat::deps
|
include ::heat::deps
|
||||||
@ -165,6 +170,17 @@ class heat::engine (
|
|||||||
include ::heat
|
include ::heat
|
||||||
include ::heat::params
|
include ::heat::params
|
||||||
|
|
||||||
|
# plugin_dirs value follows these rules:
|
||||||
|
# - default is $::os_service_default so Puppet won't try to configure it.
|
||||||
|
# - if set, array validation will be done for not empty and then configure the parameter.
|
||||||
|
# - Otherwise, fallback to default.
|
||||||
|
if !is_service_default($plugin_dirs) and !empty($plugin_dirs) {
|
||||||
|
validate_array($plugin_dirs)
|
||||||
|
$plugin_dirs_real = join($plugin_dirs, ',')
|
||||||
|
} else {
|
||||||
|
$plugin_dirs_real = $::os_service_default
|
||||||
|
}
|
||||||
|
|
||||||
package { 'heat-engine':
|
package { 'heat-engine':
|
||||||
ensure => $package_ensure,
|
ensure => $package_ensure,
|
||||||
name => $::heat::params::engine_package_name,
|
name => $::heat::params::engine_package_name,
|
||||||
@ -209,5 +225,6 @@ class heat::engine (
|
|||||||
'DEFAULT/environment_dir': value => $environment_dir;
|
'DEFAULT/environment_dir': value => $environment_dir;
|
||||||
'DEFAULT/template_dir': value => $template_dir;
|
'DEFAULT/template_dir': value => $template_dir;
|
||||||
'DEFAULT/max_nested_stack_depth': value => $max_nested_stack_depth;
|
'DEFAULT/max_nested_stack_depth': value => $max_nested_stack_depth;
|
||||||
|
'DEFAULT/plugin_dirs': value => $plugin_dirs_real;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Heat has additional configuration option for plugin_dirs
|
||||||
|
parameter. This parameter provides a list of directories
|
||||||
|
to search for plug-ins. This change allows configuration
|
||||||
|
of plugin_dirs parameter in heat.conf file.
|
@ -20,6 +20,7 @@ describe 'heat::engine' do
|
|||||||
:environment_dir => '<SERVICE DEFAULT>',
|
:environment_dir => '<SERVICE DEFAULT>',
|
||||||
:template_dir => '<SERVICE DEFAULT>',
|
:template_dir => '<SERVICE DEFAULT>',
|
||||||
:max_nested_stack_depth => '<SERVICE DEFAULT>',
|
:max_nested_stack_depth => '<SERVICE DEFAULT>',
|
||||||
|
:plugin_dirs => '<SERVICE DEFAULT>',
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -96,6 +97,7 @@ describe 'heat::engine' do
|
|||||||
it { is_expected.to contain_heat_config('DEFAULT/reauthentication_auth_method').with_value( expected_params[:reauthentication_auth_method] ) }
|
it { is_expected.to contain_heat_config('DEFAULT/reauthentication_auth_method').with_value( expected_params[:reauthentication_auth_method] ) }
|
||||||
it { is_expected.to contain_heat_config('DEFAULT/environment_dir').with_value( expected_params[:environment_dir] ) }
|
it { is_expected.to contain_heat_config('DEFAULT/environment_dir').with_value( expected_params[:environment_dir] ) }
|
||||||
it { is_expected.to contain_heat_config('DEFAULT/template_dir').with_value( expected_params[:template_dir] ) }
|
it { is_expected.to contain_heat_config('DEFAULT/template_dir').with_value( expected_params[:template_dir] ) }
|
||||||
|
it { is_expected.to contain_heat_config('DEFAULT/plugin_dirs').with_value('<SERVICE DEFAULT>') }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with disabled service managing' do
|
context 'with disabled service managing' do
|
||||||
@ -114,6 +116,15 @@ describe 'heat::engine' do
|
|||||||
:tag => 'heat-service',
|
:tag => 'heat-service',
|
||||||
) }
|
) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with plugin_dirs value set' do
|
||||||
|
before do
|
||||||
|
params.merge!({
|
||||||
|
:plugin_dirs => ['/usr/lib/heat', '/usr/local/lib/heat'] })
|
||||||
|
end
|
||||||
|
it { is_expected.to contain_heat_config('DEFAULT/plugin_dirs').with_value(['/usr/lib/heat,/usr/local/lib/heat']) }
|
||||||
|
end
|
||||||
|
|
||||||
context 'with wrong auth_encryption_key parameter size' do
|
context 'with wrong auth_encryption_key parameter size' do
|
||||||
before do
|
before do
|
||||||
params.merge!({
|
params.merge!({
|
||||||
|
Loading…
Reference in New Issue
Block a user