diff --git a/lib/puppet/provider/postgresql_conf/parsed.rb b/lib/puppet/provider/postgresql_conf/parsed.rb index c9366b5200..d53e6d2d50 100644 --- a/lib/puppet/provider/postgresql_conf/parsed.rb +++ b/lib/puppet/provider/postgresql_conf/parsed.rb @@ -18,7 +18,7 @@ :to_line => proc { |h| # simple string and numeric values don't need to be enclosed in quotes - dontneedquote = h[:value].match(/^(\w+|[0-9.-]+)$/) + dontneedquote = h[:value].match(/^(\w+)$/) dontneedequal = h[:name].match(/^(include|include_if_exists)$/i) str = h[:name].downcase # normalize case diff --git a/spec/acceptance/server/config_entry_spec.rb b/spec/acceptance/server/config_entry_spec.rb index a58903acb5..3e91ad47c9 100644 --- a/spec/acceptance/server/config_entry_spec.rb +++ b/spec/acceptance/server/config_entry_spec.rb @@ -23,4 +23,22 @@ class { 'postgresql::server': } expect(r.stderr).to eq('') end end + + it 'should correctly set a quotes-required string' do + pp = <<-EOS.unindent + class { 'postgresql::server': } + + postgresql::server::config_entry { 'listen_addresses': + value => '0.0.0.0', + } + EOS + + apply_manifest(pp, :catch_failures => true) + + psql('--command="show all" postgres') do |r| + r.stdout.should =~ /listen_adresses.+0\.0\.0\.0/ + r.stderr.should be_empty + r.exit_code.should == 0 + end + end end