Skip to content

Commit

Permalink
Allow empty string value for config entries
Browse files Browse the repository at this point in the history
PostgreSQL supports and allows config entries, such as those in
postgresql.conf, to be set to the empty string. The
`postgresql::server::config_entry` defined type, however, requires
String[1] when supplying string values. This doesn't allow for the empty
string.

This change relaxes the allowed data types for the `value` parameter of
`postgresql::server::config_entry` to `String` from `String[1]` and adds
a spec test to support the change.

Fixes #1602
  • Loading branch information
antaflos committed Jul 5, 2024
1 parent 880a6f7 commit 263eaab
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion manifests/server/config_entry.pp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
define postgresql::server::config_entry (
Enum['present', 'absent'] $ensure = 'present',
String[1] $key = $name,
Optional[Variant[String[1], Numeric, Array[String[1]]]] $value = undef,
Optional[Variant[String, Numeric, Array[String[1]]]] $value = undef,
Stdlib::Absolutepath $path = $postgresql::server::postgresql_conf_path,
Optional[String[1]] $comment = undef,
String[1] $instance_name = 'main',
Expand Down
9 changes: 9 additions & 0 deletions spec/defines/server/config_entry_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,13 @@
.that_notifies('Postgresql::Server::Instance::Service[main]')
end
end

context 'set a config entry value to the empty string' do
let(:params) { { ensure: 'present', name: 'mydatabase.app_specific_parameter', value: '' } }

it 'sets value to the empty string' do
expect(subject).to contain_postgresql_conf('mydatabase.app_specific_parameter').with(name: 'mydatabase.app_specific_parameter',
value: '')
end
end
end

0 comments on commit 263eaab

Please sign in to comment.