Skip to content
Snippets Groups Projects
Commit 01b983f1 authored by Stig Sandbeck Mathisen's avatar Stig Sandbeck Mathisen
Browse files

Imported Upstream version 4.7.1

parents 568c2320 fea6aa8e
No related branches found
No related tags found
No related merge requests found
Showing
with 1342 additions and 988 deletions
## Supported Release 4.7.1
### Summary
This release contains some bugfixes and documentation updates.
#### Bugfixes
- (MODULES-3024) Quote database objects when creating databases.
- Properly escape case where password ends with '$'.
- Fixes password change when postgres is configure to non-standard port.
- Unpins concat dependency to be able to use concat 2.x.
- Workaround to fix installing on Amazon Linux.
- Fixes proper defaulting of `$service_provider` parameter.
- Fixes postgres server init script naming on Amazon Linux.
- Fixes service reload parameter on Arch Linux.
- Adds missing onlyif_function to sequence grant code.
- Fixes to the markdown of the README.
## Supported Release 4.7.0
### Summary
A release with a considerable amount of new features, including remote db support and several platform support updates. Various bugfixes including several to address warnings and a sizable README update.
#### Features
- Remote DB support - Connection-settings allows a hash of options that can be used when connecting to a remote DB.
- Debian 8 support.
- Updated systemd-override to support fedora and CentOS paths.
- Adds the ability to define the extension name separately from the title of the resource, which allows you to add the extension to more than one database.
- Added parameter to disable automatic service restarts on config changes.
- Ubuntu 15.10 compatibility.
- OpenBSD version is now 9.4.
- Added .gitattributes to maintain line endings for .sh and .rb files.
- Adds default postgis version for 9.5.
- Allows float postgresql_conf values.
- Schedule apt update after install of repo.
#### Bugfixes
- Fixed systemd-override for RedHat systems with unmanaged Yum repos.
- Removed inherits postgresql::params.
- Multi-node tests are now not ran by default.
- Change apt::pin to apt_postgresql_org to prevent error message.
- Removed syntax error near UTF8.
- Removal of extra blanks and backslashes in README.
- Double quotes now used around database name to prevent syntax error.
- Removes ruby 1.8.7 and puppet 2.7 from travis-ci jobs.
- Removed inherits postgresql::params.
- Fixed paths to work on Amazon Linux.
- Fixed quotes around locale options.
- Huge README update.
- Update to use current msync configs.
- Fixes postgresql::server acceptance test descriptions.
## Supported Release 4.6.1
###Summary
......
......@@ -159,7 +159,7 @@ If you already have those gems installed, make sure they are up-to-date:
With all dependencies in place and up-to-date we can now run the tests:
```shell
% rake spec
% bundle exec rake spec
```
This will execute all the [rspec tests](http://rspec-puppet.com/) tests
......@@ -178,8 +178,8 @@ installed on your system.
You can run them by issuing the following command
```shell
% rake spec_clean
% rspec spec/acceptance
% bundle exec rake spec_clean
% bundle exec rspec spec/acceptance
```
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
......
#This file is generated by ModuleSync, do not edit.
source ENV['GEM_SOURCE'] || "https://rubygems.org"
def location_for(place, fake_version = nil)
if place =~ /^(git:[^#]*)#(.*)/
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
def location_for(place, version = nil)
if place =~ /^(git[:@][^#]*)#(.*)/
[version, { :git => $1, :branch => $2, :require => false}].compact
elsif place =~ /^file:\/\/(.*)/
['>= 0', { :path => File.expand_path($1), :require => false }]
['>= 0', { :path => File.expand_path($1), :require => false}]
else
[place, { :require => false }]
[place, version, { :require => false}].compact
end
end
group :development, :unit_tests do
gem 'rspec-core', '3.1.7', :require => false
gem 'puppetlabs_spec_helper', :require => false
gem 'simplecov', :require => false
gem 'puppet_facts', :require => false
gem 'json', :require => false
gem 'json', :require => false
gem 'metadata-json-lint', :require => false
gem 'puppet_facts', :require => false
gem 'puppet-blacksmith', :require => false
gem 'puppetlabs_spec_helper', :require => false
gem 'rspec-puppet', '>= 2.3.2', :require => false
gem 'simplecov', :require => false
end
group :system_tests do
if beaker_version = ENV['BEAKER_VERSION']
gem 'beaker', *location_for(beaker_version)
end
if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
gem 'beaker-rspec', *location_for(beaker_rspec_version)
else
gem 'beaker-rspec', :require => false
end
gem 'serverspec', :require => false
gem 'beaker-puppet_install_helper', :require => false
gem 'beaker-rspec', *location_for(ENV['BEAKER_RSPEC_VERSION'] || '>= 3.4')
gem 'beaker', *location_for(ENV['BEAKER_VERSION'])
gem 'serverspec', :require => false
gem 'beaker-puppet_install_helper', :require => false
gem 'master_manipulator', :require => false
gem 'beaker-hostgenerator', *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'])
end
gem 'facter', *location_for(ENV['FACTER_GEM_VERSION'])
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
if facterversion = ENV['FACTER_GEM_VERSION']
gem 'facter', facterversion, :require => false
else
gem 'facter', :require => false
end
if puppetversion = ENV['PUPPET_GEM_VERSION']
gem 'puppet', puppetversion, :require => false
else
gem 'puppet', :require => false
if File.exists? "#{__FILE__}.local"
eval(File.read("#{__FILE__}.local"), binding)
end
# vim:ft=ruby
......@@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2013 Puppet Labs
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......
Puppetlabs postgresql module
postgresql puppet module
Copyright 2012 Inkling Systems Inc
Copyright 2012-2013 Puppet Labs Inc
Copyright 2012-2013 Camptocamp SA.
Copyright (C) 2012-2016 Puppet Labs, Inc.
Copyright (C) 2012 Inkling Systems Inc
Copyright (C) 2012-2013 Camptocamp SA.
This product includes software developed by:
The Puppet Labs Inc (http://www.puppetlabs.com/).
......@@ -12,3 +12,18 @@ This product includes also software developed by:
This product includes also software developed by:
Inkling Systems Inc (https://www.inkling.com/)
Puppet Labs can be contacted at: info@puppetlabs.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
This diff is collapsed.
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet_blacksmith/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
require 'puppetlabs_spec_helper/rake_tasks'
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.send('relative')
......@@ -8,3 +9,34 @@ PuppetLint.configuration.send('disable_class_inherits_from_params_class')
PuppetLint.configuration.send('disable_documentation')
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
desc 'Generate pooler nodesets'
task :gen_nodeset do
require 'beaker-hostgenerator'
require 'securerandom'
require 'fileutils'
agent_target = ENV['TEST_TARGET']
if ! agent_target
STDERR.puts 'TEST_TARGET environment variable is not set'
STDERR.puts 'setting to default value of "redhat-64default."'
agent_target = 'redhat-64default.'
end
master_target = ENV['MASTER_TEST_TARGET']
if ! master_target
STDERR.puts 'MASTER_TEST_TARGET environment variable is not set'
STDERR.puts 'setting to default value of "redhat7-64mdcl"'
master_target = 'redhat7-64mdcl'
end
targets = "#{master_target}-#{agent_target}"
cli = BeakerHostGenerator::CLI.new([targets])
nodeset_dir = "tmp/nodesets"
nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml"
FileUtils.mkdir_p(nodeset_dir)
File.open(nodeset, 'w') do |fh|
fh.print(cli.execute)
end
puts nodeset
end
{
"CHANGELOG.md": "07b17822934b9117fe3933c9f5c5b1ef",
"CONTRIBUTING.md": "e2b8e8e433fc76b3798b7fe435f49375",
"Gemfile": "e6e6eb07f0bfc9bb1e328895ca49b3f5",
"LICENSE": "746fe83ebbf8970af0a9ea13962293e9",
"NOTICE": "d8ffc52f00e00877b45d2b77e709f69e",
"README.md": "01fda54caf6289077880d22271662447",
"Rakefile": "d953eb985f82600dc3b9ac6e1f2cfe64",
"CHANGELOG.md": "1dc473c204841f0adebac506acf363fe",
"CONTRIBUTING.md": "ad65d271f183b5adb9fdd58207939f5f",
"Gemfile": "a5493d10f1c1fec87972b13a9fe1afcf",
"LICENSE": "3b83ef96387f14655fc854ddc3c6bd57",
"NOTICE": "7e066b054e0d528cc400e4b1adfb071d",
"README.md": "f3c5c23a9fd89caea6f8644205fcba72",
"Rakefile": "ab91824042ec3fd085a41cab7e0e90d4",
"files/RPM-GPG-KEY-PGDG": "78b5db170d33f80ad5a47863a7476b22",
"files/validate_postgresql_connection.sh": "20301932819f035492a30880f5bf335a",
"lib/puppet/parser/functions/postgresql_acls_to_resources_hash.rb": "d518a7959b950874820a3b0a7a324488",
"lib/puppet/parser/functions/postgresql_escape.rb": "2e136fcd653ab38d831c5b40806d47d1",
"lib/puppet/parser/functions/postgresql_escape.rb": "41a42275ce59d8588f3d4b4918d64392",
"lib/puppet/parser/functions/postgresql_password.rb": "820da02a888ab42357fe9bc2352b1c37",
"lib/puppet/provider/postgresql_conf/parsed.rb": "8d8fdb4349d1ddfb79bc5539e7843e45",
"lib/puppet/provider/postgresql_psql/ruby.rb": "589ada55e324bc6eea0003d62d8559d5",
"lib/puppet/provider/postgresql_conf/parsed.rb": "8639aa35a8372bce07f54b76922829cf",
"lib/puppet/provider/postgresql_psql/ruby.rb": "59496792b31e67db9c1f783f70e9d461",
"lib/puppet/provider/postgresql_replication_slot/ruby.rb": "dcd93860861c530a12f1233334ea5f17",
"lib/puppet/type/postgresql_conf.rb": "95c73ca169db02aa1128ae3baa2f7399",
"lib/puppet/type/postgresql_psql.rb": "01fa589d0c71691e1ed13031cef363c5",
"lib/puppet/type/postgresql_psql.rb": "d45a5f688c15b69114996fbe0232664f",
"lib/puppet/type/postgresql_replication_slot.rb": "cd9362cdb569945ca42986d005e88bcb",
"manifests/client.pp": "45131980b230139b39ca168437725f69",
"manifests/globals.pp": "22413edee0b13ece955ea08bc227fa9b",
"manifests/globals.pp": "30ffa2772937cb2798b6f3132d759d97",
"manifests/lib/devel.pp": "5989d15c43b2543aad8cf872e6a8b2ba",
"manifests/lib/docs.pp": "ec903581401a6629fb29d8dc6fed1a1f",
"manifests/lib/java.pp": "ed639fd6ba8392cf4239cfe02be6ace5",
"manifests/lib/perl.pp": "5213fb4284f041fe28a22d68119f646d",
"manifests/lib/python.pp": "90736f86301c4c6401ec1180c176b616",
"manifests/params.pp": "081a16ae87648321843f575ee6582093",
"manifests/repo/apt_postgresql_org.pp": "e6ad65e3a62b86c69ed0d33fe43a5d84",
"manifests/params.pp": "8d3053f7da62bd5cf39739d271c96d86",
"manifests/repo/apt_postgresql_org.pp": "38ccf7937782621c7af8fa716cee6522",
"manifests/repo/yum_postgresql_org.pp": "999d830dc382be7eca8e4c01b933972c",
"manifests/repo.pp": "108094937440689e0caa99a4f7a7e0de",
"manifests/server/config.pp": "d58ad2b42825bbe17e945e9ff81bb3e7",
"manifests/server/config_entry.pp": "fac655a3e96e443c62eeda1d12bd39e7",
"manifests/repo.pp": "7db3bcd168b02373182d9cfbff84279f",
"manifests/server/config.pp": "69dfb5831d04fdcf621ee53bbb9bb47f",
"manifests/server/config_entry.pp": "50d24923db448f55d880812fc344c026",
"manifests/server/contrib.pp": "a0aafd867ca7c932bee14ebf480bfacd",
"manifests/server/database.pp": "a1d39858335e6bd1e5ed68f85a10736c",
"manifests/server/database_grant.pp": "66e5470bb932b087b540c444ee49941b",
"manifests/server/database.pp": "4ee718df961ab105a9e7fcddfca2812a",
"manifests/server/database_grant.pp": "ceda31baba15a6189c57c5cff2bf4512",
"manifests/server/db.pp": "ea41e1e51fc00fdb7a9129ecc5279ca3",
"manifests/server/extension.pp": "bbfce6b3f8af0ba3a9e5fb2ca8a8b1cf",
"manifests/server/grant.pp": "8dbfd728383f70093c57074e93fa0a2c",
"manifests/server/extension.pp": "89c70f7eb74a35e1194c247eaaae85e2",
"manifests/server/grant.pp": "d4c22124cfe489b9e388aebf0586a8b4",
"manifests/server/initdb.pp": "5e717e795a471823ed668820678991ca",
"manifests/server/install.pp": "ddd4000b5cee099a3d0ebed79fd458bb",
"manifests/server/passwd.pp": "bdfd5f7b9f428dc85cddc99569821ccf",
"manifests/server/passwd.pp": "18f7df76800b37bae8ff7f8c5417fcf9",
"manifests/server/pg_hba_rule.pp": "c2e2130a82f75b75ba409fc33bb70d1a",
"manifests/server/pg_ident_rule.pp": "0fa70e2d42d17c59f41bd3351d5d96fb",
"manifests/server/plperl.pp": "189c47d04158440874dc136ca2b3fd7a",
......@@ -46,36 +46,40 @@
"manifests/server/postgis.pp": "6ac7fbd262907bb1303aa29970e908eb",
"manifests/server/recovery.pp": "7d2cc6a96a5a5982dbb375ca7d47ac81",
"manifests/server/reload.pp": "218ac61018f7fab71f250284c4b879d0",
"manifests/server/role.pp": "c77ec478110ef526c46e7c86ae34ea99",
"manifests/server/schema.pp": "ad34f007dac59dc4673b1feebedaa048",
"manifests/server/role.pp": "a1d62e467209c2785ec69b0d9b415294",
"manifests/server/schema.pp": "e76ae47f638d048e8f4e4a3d4663c529",
"manifests/server/service.pp": "86b88df8df316c5305a7024f8b5c83a1",
"manifests/server/table_grant.pp": "9b5c3cff1162be7348ac12a2e8f9f83a",
"manifests/server/tablespace.pp": "7a76820bae0f079bdbcde0be7a164f82",
"manifests/server.pp": "60405bc9368079d6110b41522b104eac",
"manifests/validate_db_connection.pp": "a4d331cfbc32562fd641b1fa4b54e35a",
"metadata.json": "73d27b7b82d4965b713972adaf431d31",
"spec/acceptance/00-utf8_encoding_spec.rb": "68d1771b2ae116c394841a6d9ac81a0c",
"spec/acceptance/alternative_port_spec.rb": "cf33ba48e8d54ba9f63ae7ad6c737d57",
"spec/acceptance/db_spec.rb": "bad1c86df16a8d9a123416358b0fe0b6",
"spec/acceptance/default_parameters_spec.rb": "e90626a6a1a84336b0829521ed89152e",
"manifests/server/table_grant.pp": "e2abea574f7eb295fc56313f4896a9fc",
"manifests/server/tablespace.pp": "6fe5e4ef73f901861dcf031fac654696",
"manifests/server.pp": "a076111ffb5d6e21925ad8c0b95f9965",
"manifests/validate_db_connection.pp": "23d34c9ebc00b6329cca495116c7123b",
"metadata.json": "341227ff0f9b526cf94ffd36bc6d3e00",
"spec/acceptance/00-utf8_encoding_spec.rb": "ac20cfbaf4efce7c8b499d32bdec47d7",
"spec/acceptance/alternative_port_spec.rb": "7f883762a8e17941a96371e96d12c06b",
"spec/acceptance/db_spec.rb": "955a6df508d04e06d0be58e3c71a4140",
"spec/acceptance/default_parameters_spec.rb": "82bb1fd9e71f6084b71ca34ba73ff05b",
"spec/acceptance/nodesets/centos-510-x64.yml": "5698f7e61292730c603e03f64fe19359",
"spec/acceptance/nodesets/centos-59-x64.yml": "57eb3e471b9042a8ea40978c467f8151",
"spec/acceptance/nodesets/centos-64-x64-2-hosts.yml": "5c387aa90c511ea4be54830ec78cee91",
"spec/acceptance/nodesets/centos-64-x64-pe.yml": "ec075d95760df3d4702abea1ce0a829b",
"spec/acceptance/nodesets/centos-64-x64.yml": "9cde7b5d2ab6a42366d2344c264d6bdc",
"spec/acceptance/nodesets/centos-65-x64.yml": "3e5c36e6aa5a690229e720f4048bb8af",
"spec/acceptance/nodesets/debian-607-x64.yml": "d566bf76f534e2af7c9a4605316d232c",
"spec/acceptance/nodesets/debian-73-x64.yml": "ba5a75e27644c48ad8f3564fb6d372a7",
"spec/acceptance/nodesets/debian-8-x86-vcloud.yml": "2f790a891f17fec54df01c9f337cd248",
"spec/acceptance/nodesets/default.yml": "9cde7b5d2ab6a42366d2344c264d6bdc",
"spec/acceptance/nodesets/ubuntu-server-10044-x64.yml": "75e86400b7889888dc0781c0ae1a1297",
"spec/acceptance/nodesets/ubuntu-server-12042-x64.yml": "d30d73e34cd50b043c7d14e305955269",
"spec/acceptance/nodesets/ubuntu-server-1404-x64.yml": "5f0aed10098ac5b78e4217bb27c7aaf0",
"spec/acceptance/postgresql_psql_spec.rb": "5d70b4c3e35f1b5fc89a768498f74987",
"spec/acceptance/remote_access_spec.rb": "4f2261af3b20d3556c50d3af2daef7d1",
"spec/acceptance/server/recovery_spec.rb": "04c87359a23d3ac297ccf49127111ac1",
"spec/acceptance/server/schema_spec.rb": "988aa84ae180a4508897abf6a7fdb39e",
"spec/acceptance/z_alternative_pgdata_spec.rb": "64f73267d91c5dd59a9346fb554b224a",
"spec/acceptance/z_alternative_pgdata_spec.rb": "cbff072f96be283ab1607febd7c1b7ef",
"spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
"spec/spec_helper.rb": "2c3b776fcf7328f372f63550663d05fd",
"spec/spec_helper.rb": "b2db3bc02b4ac2fd5142a6621c641b07",
"spec/spec_helper_acceptance.rb": "411e4c6f836cf8f231f8f76a0f4b46eb",
"spec/spec_helper_local.rb": "3a50ad073f49d04a019212652a67c6ba",
"spec/unit/classes/client_spec.rb": "782d49105bf582bb61364790d55d4080",
"spec/unit/classes/globals_spec.rb": "3f03233518aa7978e511eff739ccf13e",
"spec/unit/classes/lib/devel_spec.rb": "149e26d7cff5198b73de081cc36b2937",
......@@ -85,38 +89,38 @@
"spec/unit/classes/lib/python_spec.rb": "085a1fd6809298d8774b8fd84157908d",
"spec/unit/classes/params_spec.rb": "af9c9224fb32b0e64bf575275167bebf",
"spec/unit/classes/repo_spec.rb": "cd1385198525063f7444fb7ef57b08cc",
"spec/unit/classes/server/config_spec.rb": "809473756bdeb5f55d15fb0eb8acbda9",
"spec/unit/classes/server/config_spec.rb": "9ef18899ce8aa81ac6e0dfb15acf3f25",
"spec/unit/classes/server/contrib_spec.rb": "a0334495869618a6b75858211fec8cc8",
"spec/unit/classes/server/initdb_spec.rb": "ad013b15fc4d6cebb41710a4574c6c86",
"spec/unit/classes/server/initdb_spec.rb": "f0300d18fc827eea9ea22b3a2e101f3f",
"spec/unit/classes/server/plperl_spec.rb": "5fb32ffacadf95aa84646e32017a30f4",
"spec/unit/classes/server/plpython_spec.rb": "692b8fa96db2dbdf985e11c8d3e187cf",
"spec/unit/classes/server/postgis_spec.rb": "3975f38629148de15fd2cd87385f8e2e",
"spec/unit/classes/server_spec.rb": "38d614cbfa1a6a51320c5b21586e1409",
"spec/unit/classes/server_spec.rb": "e3efd2b1df4b7718b8b3413ae5534fb7",
"spec/unit/defines/server/config_entry_spec.rb": "a666efb4906edaf700010b98a3a3c79b",
"spec/unit/defines/server/database_grant_spec.rb": "52e7ba3370d10b7c23a7b29fffe1ff33",
"spec/unit/defines/server/database_spec.rb": "75493abe8a6f79b0dba31dce45cfeedf",
"spec/unit/defines/server/database_spec.rb": "53483dcf8784b49c7d5c81b11f82d2a6",
"spec/unit/defines/server/db_spec.rb": "33b0f3152a559f701acf1b1ee5485acd",
"spec/unit/defines/server/extension_spec.rb": "b7fa829927057f763a202673f9b6fe53",
"spec/unit/defines/server/grant_spec.rb": "7f3bb631deee7df104c90c3550f761ed",
"spec/unit/defines/server/extension_spec.rb": "7e15125802b820edf7bd2fdb798a81cf",
"spec/unit/defines/server/grant_spec.rb": "b383439d57032d38c63914cff2e6e3d0",
"spec/unit/defines/server/pg_hba_rule_spec.rb": "fd1b947dfe0df3b81f1403928064c22f",
"spec/unit/defines/server/pg_ident_rule_spec.rb": "2e32da6f0f107359fc5ab5727812f853",
"spec/unit/defines/server/recovery_spec.rb": "86fba4b913ebeef06be8e63c52e72044",
"spec/unit/defines/server/role_spec.rb": "d421756024b2c3be85785f3a092939bb",
"spec/unit/defines/server/role_spec.rb": "30ecc6f4c0b18e23cd139f908eb24bca",
"spec/unit/defines/server/schema_spec.rb": "d42e5fdee9427032df915f599a0f8de2",
"spec/unit/defines/server/table_grant_spec.rb": "21e375467a0635194d0f2e5effdcf22a",
"spec/unit/defines/server/tablespace_spec.rb": "ac4b95389354e2b489547f3a95441b61",
"spec/unit/defines/validate_db_connection_spec.rb": "066c39f36fd5e6af8d36d34c8dd78b51",
"spec/unit/functions/postgresql_acls_to_resources_hash_spec.rb": "ba576b0f385aa44fa352df6d5812f4ae",
"spec/unit/functions/postgresql_escape_spec.rb": "ddf2f5498937840f8c55a5ff2d8e9cb1",
"spec/unit/functions/postgresql_escape_spec.rb": "ed7d1a0f8feee7d7147c35b84b27e940",
"spec/unit/functions/postgresql_password_spec.rb": "8ca30e0a155e27dd3c161cea558a97eb",
"spec/unit/provider/postgresql_conf/parsed_spec.rb": "91e9e026eb6c0d859982c7a3faaac439",
"spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb": "17e614219161dd719490b3fd6c7c55ea",
"spec/unit/provider/postgresql_conf/parsed_spec.rb": "008125819098d0317b0d8c346860f7a4",
"spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb": "f08cded8801a0a3d866515f7ec58a382",
"spec/unit/puppet/provider/postgresql_replication_slot/ruby_spec.rb": "641f5e82f4b92c2de28b361cbd3361f2",
"spec/unit/puppet/type/postgresql_psql_spec.rb": "394a71e3883e145ca8b588ce7bc2843b",
"spec/unit/puppet/type/postgresql_psql_spec.rb": "5ad61a59e91be0035a794842e33bf6f2",
"spec/unit/puppet/type/postgresql_replication_slot_spec.rb": "fcd735f400d0e981213b2ecb7cbcf0b0",
"spec/unit/type/postgresql_conf_spec.rb": "069ce03012044d4864d7e81b60f022e0",
"templates/pg_hba_rule.conf": "13b46eecdfd359eddff71fa485ef2f54",
"templates/pg_ident_rule.conf": "444c85172fd44262344588e83ebb2515",
"templates/recovery.conf": "ae00a6031a3790b169d7ab50a224e827",
"templates/systemd-override.erb": "17c39b9317b81cb9cbfc16b27ec7c292"
"templates/systemd-override.erb": "795a9e83abbb453e44c4e631a7c26ad6"
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ module Puppet::Parser::Functions
password = args[0]
if password !~ /\$\$/
if password !~ /\$\$/ and password[-1] != '$'
retval = "$$#{password}$$"
else
escape = Digest::MD5.hexdigest(password)[0..5].gsub(/\d/,'')
......@@ -20,6 +20,6 @@ module Puppet::Parser::Functions
end
retval = "$#{escape}$#{password}$#{escape}$"
end
retval
retval
end
end
......@@ -18,12 +18,12 @@ Puppet::Type.type(:postgresql_conf).provide(
:to_line => proc { |h|
# simple string and numeric values don't need to be enclosed in quotes
if h[:value].is_a?(Fixnum)
if h[:value].is_a?(Numeric)
val = h[:value].to_s
else
val = h[:value]
end
dontneedquote = val.match(/^(\w+)$/)
dontneedquote = val.match(/^([\d\.]+|\w+)$/)
dontneedequal = h[:name].match(/^(include|include_if_exists)$/i)
str = h[:name].downcase # normalize case
......
......@@ -16,19 +16,21 @@ Puppet::Type.type(:postgresql_psql).provide(:ruby) do
command.push("-p", resource[:port]) if resource[:port]
command.push("-t", "-c", '"' + sql.gsub('"', '\"') + '"')
environment = get_environment
if resource[:cwd]
Dir.chdir resource[:cwd] do
run_command(command, resource[:psql_user], resource[:psql_group])
run_command(command, resource[:psql_user], resource[:psql_group], environment)
end
else
run_command(command, resource[:psql_user], resource[:psql_group])
run_command(command, resource[:psql_user], resource[:psql_group], environment)
end
end
private
def get_environment
environment = {}
environment = resource[:connect_settings] || {}
if envlist = resource[:environment]
envlist = [envlist] unless envlist.is_a? Array
envlist.each do |setting|
......@@ -47,7 +49,7 @@ Puppet::Type.type(:postgresql_psql).provide(:ruby) do
return environment
end
def run_command(command, user, group)
def run_command(command, user, group, environment)
command = command.join ' '
environment = get_environment
if Puppet::PUPPETVERSION.to_f < 3.0
......@@ -66,7 +68,7 @@ Puppet::Type.type(:postgresql_psql).provide(:ruby) do
:failonfail => false,
:combine => true,
:override_locale => true,
:custom_environment => environment
:custom_environment => environment,
})
[output, $CHILD_STATUS.dup]
end
......
......@@ -62,12 +62,16 @@ Puppet::Type.newtype(:postgresql_psql) do
end
end
newparam(:connect_settings) do
desc "Connection settings that will be used when connecting to postgres"
end
newparam(:db) do
desc "The name of the database to execute the SQL command against."
desc "The name of the database to execute the SQL command against, this overrides any PGDATABASE value in connect_settings"
end
newparam(:port) do
desc "The port of the database server to execute the SQL command against."
desc "The port of the database server to execute the SQL command against, this overrides any PGPORT value in connect_settings."
end
newparam(:search_path) do
......
# Class for setting cross-class global overrides. See README.md for more
# details.
class postgresql::globals (
$client_package_name = undef,
$server_package_name = undef,
$contrib_package_name = undef,
$devel_package_name = undef,
$java_package_name = undef,
$docs_package_name = undef,
$perl_package_name = undef,
$plperl_package_name = undef,
$plpython_package_name = undef,
$python_package_name = undef,
$postgis_package_name = undef,
$client_package_name = undef,
$server_package_name = undef,
$contrib_package_name = undef,
$devel_package_name = undef,
$java_package_name = undef,
$docs_package_name = undef,
$perl_package_name = undef,
$plperl_package_name = undef,
$plpython_package_name = undef,
$python_package_name = undef,
$postgis_package_name = undef,
$service_name = undef,
$service_provider = undef,
$service_status = undef,
$default_database = undef,
$service_name = undef,
$service_provider = undef,
$service_status = undef,
$default_database = undef,
$validcon_script_path = undef,
$validcon_script_path = undef,
$initdb_path = undef,
$createdb_path = undef,
$psql_path = undef,
$pg_hba_conf_path = undef,
$pg_ident_conf_path = undef,
$postgresql_conf_path = undef,
$recovery_conf_path = undef,
$initdb_path = undef,
$createdb_path = undef,
$psql_path = undef,
$pg_hba_conf_path = undef,
$pg_ident_conf_path = undef,
$postgresql_conf_path = undef,
$recovery_conf_path = undef,
$default_connect_settings = undef,
$pg_hba_conf_defaults = undef,
$pg_hba_conf_defaults = undef,
$datadir = undef,
$confdir = undef,
$bindir = undef,
$xlogdir = undef,
$logdir = undef,
$datadir = undef,
$confdir = undef,
$bindir = undef,
$xlogdir = undef,
$logdir = undef,
$user = undef,
$group = undef,
$user = undef,
$group = undef,
$version = undef,
$postgis_version = undef,
$repo_proxy = undef,
$version = undef,
$postgis_version = undef,
$repo_proxy = undef,
$needs_initdb = undef,
$needs_initdb = undef,
$encoding = undef,
$locale = undef,
$encoding = undef,
$locale = undef,
$manage_pg_hba_conf = undef,
$manage_pg_ident_conf = undef,
$manage_recovery_conf = undef,
$manage_pg_hba_conf = undef,
$manage_pg_ident_conf = undef,
$manage_recovery_conf = undef,
$manage_package_repo = undef,
$manage_package_repo = undef,
) {
# We are determining this here, because it is needed by the package repo
# class.
$default_version = $::osfamily ? {
/^(RedHat|Linux)/ => $::operatingsystem ? {
'Fedora' => $::operatingsystemrelease ? {
/^(22)$/ => '9.4',
/^(21)$/ => '9.3',
/^(18|19|20)$/ => '9.2',
/^(17)$/ => '9.1',
......@@ -86,6 +88,7 @@ class postgresql::globals (
default => undef,
},
'Ubuntu' => $::operatingsystemrelease ? {
/^(15.10)$/ => '9.4',
/^(15.04)$/ => '9.4',
/^(14.10)$/ => '9.4',
/^(14.04)$/ => '9.3',
......@@ -100,7 +103,10 @@ class postgresql::globals (
default => '9.2',
},
'FreeBSD' => '93',
'OpenBSD' => '9.3',
'OpenBSD' => $::operatingsystemrelease ? {
/5\.6/ => '9.3',
/5\.[7-9]/ => '9.4',
},
'Suse' => $::operatingsystem ? {
'SLES' => $::operatingsystemrelease ? {
/11\.[0-4]/ => '91',
......@@ -126,8 +132,9 @@ class postgresql::globals (
'91' => '1.5',
'9.2' => '2.0',
'9.3' => '2.1',
'9.4' => '2.1',
'93' => '2.1',
'9.4' => '2.1',
'9.5' => '2.2',
default => undef,
}
$globals_postgis_version = $postgis_version ? {
......
......@@ -13,7 +13,8 @@ class postgresql::params inherits postgresql::globals {
$service_ensure = 'running'
$service_enable = true
$service_manage = true
$service_provider = $service_provider
$service_restart_on_change = true
$service_provider = $postgresql::globals::service_provider
$manage_pg_hba_conf = pick($manage_pg_hba_conf, true)
$manage_pg_ident_conf = pick($manage_pg_ident_conf, true)
$manage_recovery_conf = pick($manage_recovery_conf, false)
......@@ -29,7 +30,7 @@ class postgresql::params inherits postgresql::globals {
$version_parts = split($version, '[.]')
$package_version = "${version_parts[0]}${version_parts[1]}"
if $version == $postgresql::globals::default_version {
if $version == $postgresql::globals::default_version and $::operatingsystem != 'Amazon' {
$client_package_name = pick($client_package_name, 'postgresql')
$server_package_name = pick($server_package_name, 'postgresql-server')
$contrib_package_name = pick($contrib_package_name,'postgresql-contrib')
......@@ -41,7 +42,7 @@ class postgresql::params inherits postgresql::globals {
$service_name = pick($service_name, 'postgresql')
$bindir = pick($bindir, '/usr/bin')
$datadir = $::operatingsystem ? {
'Amazon' => pick($datadir, '/var/lib/pgsql9/data'),
'Amazon' => pick($datadir, "/var/lib/pgsql${package_version}/data"),
default => pick($datadir, '/var/lib/pgsql/data'),
}
$confdir = pick($confdir, $datadir)
......@@ -54,10 +55,16 @@ class postgresql::params inherits postgresql::globals {
$docs_package_name = pick($docs_package_name, "postgresql${package_version}-docs")
$plperl_package_name = pick($plperl_package_name, "postgresql${package_version}-plperl")
$plpython_package_name = pick($plpython_package_name, "postgresql${package_version}-plpython")
$service_name = pick($service_name, "postgresql-${version}")
$bindir = pick($bindir, "/usr/pgsql-${version}/bin")
$service_name = $::operatingsystem ? {
'Amazon' => pick($service_name, "postgresql${version_parts[0]}${version_parts[1]}"),
default => pick($service_name, "postgresql-${version}"),
}
$bindir = $::operatingsystem ? {
'Amazon' => pick($bindir, '/usr/bin'),
default => pick($bindir, "/usr/pgsql-${version}/bin"),
}
$datadir = $::operatingsystem ? {
'Amazon' => pick($datadir, "/var/lib/pgsql9/${version}/data"),
'Amazon' => pick($datadir, "/var/lib/pgsql${package_version}/data"),
default => pick($datadir, "/var/lib/pgsql/${version}/data"),
}
$confdir = pick($confdir, $datadir)
......@@ -69,15 +76,15 @@ class postgresql::params inherits postgresql::globals {
$perl_package_name = pick($perl_package_name, 'perl-DBD-Pg')
$python_package_name = pick($python_package_name, 'python-psycopg2')
$postgis_package_name = pick(
$postgis_package_name,
$::operatingsystemrelease ? {
/^5\./ => 'postgis',
default => versioncmp($postgis_version, '2') ? {
'-1' => "postgis${package_version}",
default => "postgis2_${package_version}",}
}
)
if $postgresql::globals::postgis_package_name {
$postgis_package_name = $postgresql::globals::postgis_package_name
} elsif $::operatingsystemrelease =~ /^5\./ {
$postgis_package_name = 'postgis'
} elsif $postgis_version and versioncmp($postgis_version, '2') < 0 {
$postgis_package_name = "postgis${package_version}"
} else {
$postgis_package_name = "postgis2_${package_version}"
}
}
'Archlinux': {
......@@ -105,7 +112,7 @@ class postgresql::params inherits postgresql::globals {
$psql_path = pick($psql_path, "${bindir}/psql")
$service_status = $service_status
$service_reload = "service ${service_name} reload"
$service_reload = "systemctl reload ${service_name}"
$python_package_name = pick($python_package_name, 'python-psycopg2')
# Archlinux does not have a perl::DBD::Pg package
$perl_package_name = pick($perl_package_name, 'undef')
......@@ -134,7 +141,7 @@ class postgresql::params inherits postgresql::globals {
$client_package_name = pick($client_package_name, "postgresql-client-${version}")
$server_package_name = pick($server_package_name, "postgresql-${version}")
$contrib_package_name = pick($contrib_package_name, "postgresql-contrib-${version}")
if versioncmp($postgis_version, '2') < 0 {
if $postgis_version and versioncmp($postgis_version, '2') < 0 {
$postgis_package_name = pick($postgis_package_name, "postgresql-${version}-postgis")
} else {
$postgis_package_name = pick($postgis_package_name, "postgresql-${version}-postgis-${postgis_version}")
......@@ -253,7 +260,6 @@ class postgresql::params inherits postgresql::globals {
$validcon_script_path = pick($validcon_script_path, '/usr/local/bin/validate_postgresql_connection.sh')
$initdb_path = pick($initdb_path, "${bindir}/initdb")
$createdb_path = pick($createdb_path, "${bindir}/createdb")
$pg_hba_conf_path = pick($pg_hba_conf_path, "${confdir}/pg_hba.conf")
$pg_hba_conf_defaults = pick($pg_hba_conf_defaults, true)
$pg_ident_conf_path = pick($pg_ident_conf_path, "${confdir}/pg_ident.conf")
......
......@@ -2,7 +2,7 @@
class postgresql::repo (
$version = undef,
$proxy = undef,
) inherits postgresql::params {
) {
case $::osfamily {
'RedHat', 'Linux': {
if $version == undef {
......
......@@ -5,7 +5,7 @@ include ::apt
#
# http://www.postgresql.org/download/linux/debian/
#
apt::pin { 'apt.postgresql.org':
apt::pin { 'apt_postgresql_org':
originator => 'apt.postgresql.org',
priority => 500,
}->
......@@ -19,4 +19,5 @@ include ::apt
}
Apt::Source['apt.postgresql.org']->Package<|tag == 'postgresql'|>
Class['Apt::Update'] -> Package<|tag == 'postgresql'|>
}
......@@ -13,6 +13,7 @@ class postgresql::server (
$service_enable = $postgresql::params::service_enable,
$service_manage = $postgresql::params::service_manage,
$service_name = $postgresql::params::service_name,
$service_restart_on_change = $postgresql::params::service_restart_on_change,
$service_provider = $postgresql::params::service_provider,
$service_reload = $postgresql::params::service_reload,
$service_status = $postgresql::params::service_status,
......@@ -63,6 +64,10 @@ class postgresql::server (
$_version = $postgresql::params::version
}
if $createdb_path != undef{
warning('Passing "createdb_path" to postgresql::server is deprecated, it can be removed safely for the same behaviour')
}
# Reload has its own ordering, specified by other defines
class { "${pg}::reload": require => Class["${pg}::install"] }
......
......@@ -20,6 +20,7 @@ class postgresql::server::config {
$manage_recovery_conf = $postgresql::server::manage_recovery_conf
$datadir = $postgresql::server::datadir
$logdir = $postgresql::server::logdir
$service_name = $postgresql::server::service_name
if ($manage_pg_hba_conf == true) {
# Prepare the main pg_hba file
......@@ -163,7 +164,7 @@ class postgresql::server::config {
if $::operatingsystemrelease =~ /^7/ or $::operatingsystem == 'Fedora' {
file { 'systemd-override':
ensure => present,
path => "/etc/systemd/system/${postgresql::params::service_name}.service",
path => "/etc/systemd/system/${service_name}.service",
owner => root,
group => root,
content => template('postgresql/systemd-override.erb'),
......
......@@ -17,9 +17,18 @@ define postgresql::server::config_entry (
case $name {
/data_directory|hba_file|ident_file|include|listen_addresses|port|max_connections|superuser_reserved_connections|unix_socket_directory|unix_socket_group|unix_socket_permissions|bonjour|bonjour_name|ssl|ssl_ciphers|shared_buffers|max_prepared_transactions|max_files_per_process|shared_preload_libraries|wal_level|wal_buffers|archive_mode|max_wal_senders|hot_standby|logging_collector|silent_mode|track_activity_query_size|autovacuum_max_workers|autovacuum_freeze_max_age|max_locks_per_transaction|max_pred_locks_per_transaction|restart_after_crash|lc_messages|lc_monetary|lc_numeric|lc_time/: {
Postgresql_conf {
notify => Class['postgresql::server::service'],
before => Class['postgresql::server::reload'],
if $postgresql::server::service_restart_on_change {
Postgresql_conf {
notify => Class['postgresql::server::service'],
before => Class['postgresql::server::reload'],
}
} else {
Postgresql_conf {
before => [
Class['postgresql::server::service'],
Class['postgresql::server::reload'],
],
}
}
}
......
# Define for creating a database. See README.md for more details.
define postgresql::server::database(
$comment = undef,
$dbname = $title,
$owner = $postgresql::server::user,
$tablespace = undef,
$template = 'template0',
$encoding = $postgresql::server::encoding,
$locale = $postgresql::server::locale,
$istemplate = false
$comment = undef,
$dbname = $title,
$owner = $postgresql::server::user,
$tablespace = undef,
$template = 'template0',
$encoding = $postgresql::server::encoding,
$locale = $postgresql::server::locale,
$istemplate = false,
$connect_settings = $postgresql::server::default_connect_settings,
) {
$createdb_path = $postgresql::server::createdb_path
$user = $postgresql::server::user
$group = $postgresql::server::group
$psql_path = $postgresql::server::psql_path
$port = $postgresql::server::port
$version = $postgresql::server::_version
$default_db = $postgresql::server::default_database
# If possible use the version of the remote database, otherwise
# fallback to our local DB version
if $connect_settings != undef and has_key( $connect_settings, 'DBVERSION') {
$version = $connect_settings['DBVERSION']
} else {
$version = $postgresql::server::_version
}
# If the connection settings do not contain a port, then use the local server port
if $connect_settings != undef and has_key( $connect_settings, 'PGPORT') {
$port = undef
} else {
$port = $postgresql::server::port
}
# Set the defaults for the postgresql_psql resource
Postgresql_psql {
psql_user => $user,
psql_group => $group,
psql_path => $psql_path,
port => $port,
psql_user => $user,
psql_group => $group,
psql_path => $psql_path,
port => $port,
connect_settings => $connect_settings,
}
# Optionally set the locale switch. Older versions of createdb may not accept
......@@ -30,7 +45,7 @@ define postgresql::server::database(
if ($version != '8.1') {
$locale_option = $locale ? {
undef => '',
default => "--locale=${locale} ",
default => "LC_COLLATE='${locale}' LC_CTYPE='${locale}'",
}
$public_revoke_privilege = 'CONNECT'
} else {
......@@ -38,40 +53,40 @@ define postgresql::server::database(
$public_revoke_privilege = 'ALL'
}
$template_option = $template ? {
undef => '',
default => "TEMPLATE=\"${template}\"",
}
$encoding_option = $encoding ? {
undef => '',
default => "--encoding '${encoding}' ",
default => "ENCODING='${encoding}'",
}
$tablespace_option = $tablespace ? {
undef => '',
default => "--tablespace='${tablespace}' ",
default => "TABLESPACE=\"${tablespace}\"",
}
$createdb_command = "${createdb_path} --port='${port}' --owner='${owner}' --template=${template} ${encoding_option}${locale_option}${tablespace_option} '${dbname}'"
if $createdb_path != undef{
warning('Passing "createdb_path" to postgresql::database is deprecated, it can be removed safely for the same behaviour')
}
postgresql_psql { "Check for existence of db '${dbname}'":
command => 'SELECT 1',
postgresql_psql { "Create db '${dbname}'":
command => "CREATE DATABASE \"${dbname}\" WITH OWNER=\"${owner}\" ${template_option} ${encoding_option} ${locale_option} ${tablespace_option}",
unless => "SELECT datname FROM pg_database WHERE datname='${dbname}'",
db => $default_db,
port => $port,
require => Class['postgresql::server::service']
}~>
exec { $createdb_command :
refreshonly => true,
user => $user,
logoutput => on_failure,
}~>
# This will prevent users from connecting to the database unless they've been
# granted privileges.
postgresql_psql {"REVOKE ${public_revoke_privilege} ON DATABASE \"${dbname}\" FROM public":
db => $default_db,
port => $port,
refreshonly => true,
}
Exec[ $createdb_command ]->
Postgresql_psql[ "Create db '${dbname}'" ]->
postgresql_psql {"UPDATE pg_database SET datistemplate = ${istemplate} WHERE datname = '${dbname}'":
unless => "SELECT datname FROM pg_database WHERE datname = '${dbname}' AND datistemplate = ${istemplate}",
db => $default_db,
......@@ -83,8 +98,8 @@ define postgresql::server::database(
'8.1' => 'obj_description',
default => 'shobj_description',
}
Exec[ $createdb_command ]->
postgresql_psql {"COMMENT ON DATABASE ${dbname} IS '${comment}'":
Postgresql_psql[ "Create db '${dbname}'" ]->
postgresql_psql {"COMMENT ON DATABASE \"${dbname}\" IS '${comment}'":
unless => "SELECT pg_catalog.${comment_information_function}(d.oid, 'pg_database') as \"Description\" FROM pg_catalog.pg_database d WHERE datname = '${dbname}' AND pg_catalog.${comment_information_function}(d.oid, 'pg_database') = '${comment}'",
db => $dbname,
}
......@@ -92,6 +107,6 @@ define postgresql::server::database(
# Build up dependencies on tablespace
if($tablespace != undef and defined(Postgresql::Server::Tablespace[$tablespace])) {
Postgresql::Server::Tablespace[$tablespace]->Exec[$createdb_command]
Postgresql::Server::Tablespace[$tablespace]->Postgresql_psql[ "Create db '${dbname}'" ]
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment