Use native hash for pool_target options
This commit allows the options parameter type from one long formatted string to a native hash, which is rendered into the right format. The change is backwards compatible with a deprecation notice. It uses the join and join_keys_to_values functions provided by puppetlabs' stdlib module. Change-Id: Ia436aabf9d346424cb68136c0b47cdda46e762e8
This commit is contained in:
parent
2c374867ae
commit
bd2f0d3fbc
|
@ -6,9 +6,13 @@
|
||||||
#
|
#
|
||||||
# [*options*]
|
# [*options*]
|
||||||
# Options to be passed to the backend DNS server. This should include host and
|
# Options to be passed to the backend DNS server. This should include host and
|
||||||
# port. For instance for a bind9
|
# port. For instance for a bind9 target this could be:
|
||||||
# target this could be:
|
# {'rndc_host' => '192.168.27.100',
|
||||||
# rndc_host: 192.168.27.100, rndc_port: 953, rndc_config_file: /etc/bind/rndc.conf, rndc_key_file: /etc/bind/rndc.key, port: 53, host: 192.168.27.100
|
# 'rndc_port' => 953,
|
||||||
|
# 'rndc_config_file' => '/etc/bind/rndc.conf',
|
||||||
|
# 'rndc_key_file' => '/etc/bind/rndc.key',
|
||||||
|
# 'port' => 53,
|
||||||
|
# 'host' => '192.168.27.100'}
|
||||||
#
|
#
|
||||||
# [*type*]
|
# [*type*]
|
||||||
# Port number of the target DNS server.
|
# Port number of the target DNS server.
|
||||||
|
@ -31,8 +35,15 @@ define designate::pool_target (
|
||||||
validate_re($name, '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
|
validate_re($name, '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
|
||||||
validate_array($masters)
|
validate_array($masters)
|
||||||
|
|
||||||
|
if is_hash($options) {
|
||||||
|
$options_real = join(join_keys_to_values($options,':'),',')
|
||||||
|
} else {
|
||||||
|
warning('Passing a string to options is now deprecated, use a hash instead.')
|
||||||
|
$options_real = $options
|
||||||
|
}
|
||||||
|
|
||||||
designate_config {
|
designate_config {
|
||||||
"pool_target:${name}/options": value => $options;
|
"pool_target:${name}/options": value => $options_real;
|
||||||
"pool_target:${name}/type": value => $type;
|
"pool_target:${name}/type": value => $type;
|
||||||
"pool_target:${name}/masters": value => join($masters,',');
|
"pool_target:${name}/masters": value => join($masters,',');
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- Passing a string to pool_target::options is now deprecated. This parameter
|
||||||
|
should now be given as a hash.
|
|
@ -7,7 +7,8 @@ describe 'designate::pool_target' do
|
||||||
|
|
||||||
let :params do
|
let :params do
|
||||||
{
|
{
|
||||||
:options => 'rndc_host: 192.168.27.100, rndc_port: 953, rndc_config_file: /etc/bind/rndc.conf, rndc_key_file: /etc/bind/rndc.key, port: 53, host: 192.168.27.100',
|
:options => {'rndc_host' => '192.168.27.100', 'rndc_port' => 953, 'rndc_config_file' => '/etc/bind/rndc.conf',
|
||||||
|
'rndc_key_file' => '/etc/bind/rndc.key', 'port' => 53, 'host' => '192.168.27.100'},
|
||||||
:type => 'bind9',
|
:type => 'bind9',
|
||||||
:masters => ['127.0.0.1:5354'],
|
:masters => ['127.0.0.1:5354'],
|
||||||
}
|
}
|
||||||
|
@ -25,7 +26,7 @@ describe 'designate::pool_target' do
|
||||||
it { is_expected.to contain_designate__pool_target('f26e0b32-736f-4f0a-831b-039a415c481e') }
|
it { is_expected.to contain_designate__pool_target('f26e0b32-736f-4f0a-831b-039a415c481e') }
|
||||||
|
|
||||||
it 'configures designate pool-manager pool with default parameters' do
|
it 'configures designate pool-manager pool with default parameters' do
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/options').with_value(params[:options])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/options').with_value(params[:options].map{|k,v|"#{k}:#{v}"}.join(','))
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/type').with_value(params[:type])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/type').with_value(params[:type])
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/masters').with_value(params[:masters])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/masters').with_value(params[:masters])
|
||||||
end
|
end
|
||||||
|
@ -37,7 +38,7 @@ describe 'designate::pool_target' do
|
||||||
it { is_expected.to contain_designate__pool_target('f26e0b32-736f-4f0a-831b-039a415c481e') }
|
it { is_expected.to contain_designate__pool_target('f26e0b32-736f-4f0a-831b-039a415c481e') }
|
||||||
|
|
||||||
it 'configures designate pool-manager pool with default parameters' do
|
it 'configures designate pool-manager pool with default parameters' do
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/options').with_value(params[:options])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/options').with_value(params[:options].map{|k,v|"#{k}:#{v}"}.join(','))
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/type').with_value(params[:type])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/type').with_value(params[:type])
|
||||||
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/masters').with_value(params[:masters])
|
is_expected.to contain_designate_config('pool_target:f26e0b32-736f-4f0a-831b-039a415c481e/masters').with_value(params[:masters])
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue