Commit graph

322 commits

Author SHA1 Message Date
jonoterc
a93fcf850c enabling defined postgres user password without resetting on every puppet run (based on https://github.com/puppetlabs/puppetlabs-postgresql/issues/92) 2013-10-17 17:57:33 -04:00
Mickaël Canévet
6f614b0b37 Add a parameter to (un)manage pg_hba.conf 2013-10-16 14:58:08 +02:00
Marek Hulan
b784676c2e Expose owner in db definition 2013-10-10 17:34:26 +02:00
Ashley Penney
f28c355b26 Merge pull request #267 from neilnorthrop/master
fixed the rspec test to include 'sha1' in
2013-10-09 09:05:16 -07:00
Neil Northrop
f9e6046132 fixed the rspec test to include 'sha1' in 2013-10-04 15:14:10 -07:00
Bret Comnes
5e142cbeba Defined $default_version for Fedora 17
I have not actually tested this.  I based it off
of http://distrowatch.org/table.php?distribution=fedora

Closes #90
2013-10-02 14:27:46 -07:00
Bret Comnes
2718f14017 Special case for $datadir on Amazon
Closes #252
2013-10-02 12:48:44 -07:00
Marco Nenciarini
0cb71c7c5f Support apt.postgresql.org version specific packages.
This change will allow to test beta and release candidate version of
postgres from apt.postgresql.org.

For stable version this change will make available the libpq package
for that specific version (that will not hurts).
2013-09-25 18:01:07 +02:00
Ashley Penney
6ac2e25821 Merge pull request #249 from aboe76/master
Added Archlinux Support
2013-09-23 16:22:59 -07:00
Ashley Penney
5ac999b72c Merge pull request #251 from kamilszymanski/authentication_method_validation
Validate authentication method against server version
2013-09-23 12:19:28 -07:00
Niels Abspoel
1e3bcb73bb Added Archlinux Support 2013-09-23 20:08:17 +02:00
Kamil Szymanski
71e0236659 Validate authentication method against server version 2013-09-22 22:35:18 +02:00
Kamil Szymanski
480fc64f6b lint fixes 2013-09-21 19:45:35 +02:00
Ken Barber
891b1d71a2 Rename contrib to server::contrib
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-20 14:35:24 +01:00
Ken Barber
3ba3b6df54 Ensure proper removal of the client package
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-19 23:51:16 +01:00
Ken Barber
fa82eec94b Fix encoding issues for ubuntu
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-19 21:15:09 +01:00
Ken Barber
809003d0f9 serverspec + some cleanup
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-19 16:30:15 +01:00
Ken Barber
2876dacb94 Make sure $ensure is passed through to repo correctly
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-19 01:16:20 +01:00
Ken Barber
c8d3ecde14 Various cleanups
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-18 22:25:51 +01:00
Ken Barber
b9598796e0 Calculate default version for Fedora
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-18 00:05:14 +01:00
Ken Barber
cd2bc50cdf Fix repo removal for testing purposes
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-17 22:19:01 +01:00
Ken Barber
27c5cc0304 Provide package removal fixes for Debian tests
This patch provides fixes to help tests pass on Debian. The failures were in
relation to the lack of proper removal of the server and contrib parts. Setting
the ensure => purged parameter for removal seems to have solved a lot of this.

Also, the ordering for contrib being (un)installed needed some work.

I've also made sure we use 'purged' a lot more in tests to make sure we clean
up after ourselves properly.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-14 06:39:17 +01:00
Ken Barber
a0a2a00a49 Fix debian 7 regexp, rename to default_version and some cleanup
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-14 06:39:17 +01:00
Ken Barber
7d84b6ac0e Add datadir back, as its used within a lot of tests
Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-14 06:39:17 +01:00
Ken Barber
59c1cbfbf8 Major rewrite to solve order dependencies and unclear public API
This is a very very large change to the module. It started out as a fix to add
postgresl::server::config_entry, and quickly became a rewrite to fix a lot of
ordering issues inherent in the API.

Since this changes the Public API it is considered a backwards compatible
change.

See the upgrading guide in README.md for more details as to what has been
modified in this patch.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-09-14 06:39:15 +01:00
Rahul Gopinath
20bdf10b72 Adding anchors around contained resources 2013-09-14 06:38:53 +01:00
Rahul Gopinath
1dce6454c8 Pulling in pgconf module from camptocamp/puppet-pgconf
This includes the following changes:
  - Hooking up pgconf module to postgresql to manage postgresql.conf
   - pgconf includes a type and provider for postgresql.conf the provider
     is a simple parsed file following basic ini parsing.
  - Add config_entry.pp which wraps the pgconf module.
  - Replace file_line resources by postgresql::config_entry in beforeservice.pp
  - Adding unit tests for the newly introduced functionality
2013-09-14 06:38:53 +01:00
Greg Sutcliffe
ba005467dc Remove trailing comma which breaks 2.6 compat 2013-08-30 13:00:57 +01:00
Ashley Penney
8ce9952600 Merge pull request #236 from apenney/style
Style fixes (and a bugfix)
2013-08-27 12:00:30 -07:00
Ashley Penney
c2d48f1953 Merge pull request #235 from kamilszymanski/db_docs_update
Add missing documentation for istemplate parameter
2013-08-27 12:00:10 -07:00
Ashley Penney
d378d8aa17 Merge pull request #209 from mnencia/patch-1
Tag the postgresql-contrib package as postgresql
2013-08-27 11:58:18 -07:00
Ashley Penney
f7116f5aad Style guide cleanup.
Most of these changes are just simple bits but I've wrapped a bunch of
stuff around 80 lines so it's slightly more readable.  These should all
be no-op changes.
2013-08-26 12:22:13 -04:00
Kamil Szymanski
83086c2712 Add missing documentation for istemplate parameter 2013-08-25 13:22:33 +02:00
Ashley Penney
0ddb9b109a Add the two missing variables that the if check requires. 2013-08-24 12:07:07 -07:00
Hunter Haugen
b2b9b13df8 Merge pull request #218 from fiddyspence/set_postgres_postgrespw
Alter escaping in postgresql::config::afterservice
2013-08-13 16:13:18 -07:00
Hunter Haugen
9d753b40a8 Merge pull request #229 from mcanevet/plperl
Add README entry for postgresql::plperl
2013-08-13 16:07:34 -07:00
Mickaël Canévet
84f79507ed Fix postgresql::plperl documentation 2013-08-12 10:15:25 +02:00
Ken Barber
9c2dab95aa (GH-216) Alter role call not idempotent with cleartext passwords
The postgresql::role defined type was not idempotent when passed cleartext
passwords. This is because we were comparing it with its md5 equivalent in
the db.

This patch converts any cleartext passwords to md5 before comparison, but
only if they are cleartext (ie. not starting with md5).

I also bumped the version of rspec-system-puppet to get use of the refresh
method, plus did some cleanup because the old tests were a bit dusty, again
taking advantage of refresh plus changing some matchers for clarity.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-08-01 03:18:46 +01:00
fiddyspence
165e12d88e amending the unless on the exec for quoting also 2013-07-23 14:43:45 +01:00
fiddyspence
82d79dd21a reverting path on exec 2013-07-23 13:08:54 +01:00
fiddyspence
2eb03efc29 Alter escaping in postgresql::config::afterservice
This allows non-standard users (pe-postgres) to change passwords. Also
added a function to do escaping of the password, added system tests
and rspec tests for the function.
2013-07-23 13:04:46 +01:00
Hunter Haugen
847f54ce6c Merge pull request #204 from mcanevet/set_istemplate
Add support for istemplate parameter where creating db
2013-07-19 12:55:16 -07:00
Hunter Haugen
95452ceb90 Merge pull request #205 from mcanevet/plperl
Add support for installing PL/Perl
2013-07-19 12:49:21 -07:00
Marco Nenciarini
2344960980 Tag the postgresql-contrib package as postgresql 2013-07-17 12:10:19 +02:00
Hunter Haugen
a37eaa053b Split database_grant up
The code to grant permissions databases and their objects has been
abstracted to `postgresql::grant` and is used by both
`postgresql::database_grant` and `postgresql::table_grant`
2013-07-16 14:31:28 -07:00
Mickaël Canévet
5ff47cf1b8 Test plperl only on non standard installation as it does not work on redhat5 2013-07-16 16:06:12 +02:00
Mickaël Canévet
f0ac7325f4 Set plperl_package_name to postgresql-plperl on every RedHat family OS except RHEL5 2013-07-16 15:32:56 +02:00
Mickaël Canévet
68361236c0 Use $::operatingsystemrelease instead of $::lsbmajdistrelease 2013-07-16 10:21:19 +02:00
Mickaël Canévet
d7cb86ca1e Add missing manifests/plperl.pp file 2013-07-16 08:52:20 +02:00
Mickaël Canévet
5065246512 Add support for installing PL/Perl 2013-07-10 15:20:57 +02:00
Mickaël Canévet
c86fec994a Add support for istemplate parameter where creating db 2013-07-10 14:44:58 +02:00
Mickaël Canévet
1f736fcfc0 Add support for optional management of pg_hba.conf
This patch adds support for disabling management of pg_hba.conf by the module,
through the parameter `manage_pg_hba_conf`.
2013-07-08 13:29:48 +01:00
Mickaël Canévet
abf8f64ab5 Alter superuser, createdb, createrole, login, replication status and the connection limit of a role that already exists
Previously we only created a new user, any updates to the defined resource
would not update the role. This patch adds extra logic to modify a role
whenever a parameter is changed.

System tests have also been added to support this.
2013-07-03 14:11:54 +01:00
Chris Price
dcac94a70d Merge pull request #156 from harbulot/issue_114
Setting the owner of the database with createdb.
2013-06-06 14:45:07 -07:00
Chris Price
5bc584ef26 Merge pull request #188 from cprice-puppet/bug/master/fix-hard-coded-postgres-user-in-hba
Don't hard-code postgres user's username for pg_hba
2013-06-06 14:43:02 -07:00
Chris Price
8502de54a7 Don't hard-code postgres user's username for pg_hba 2013-06-06 12:55:43 -07:00
Ken Barber
f6fb18a5b3 Fix up and add some tests for unknown OS patch
This patch just adds some new tests for the unknown OS patch, and cleans up
some existing tests to look for the new warning message.

Also, change the warning message for $osfamily and manage_package_repo to
reflect the parameter at fault.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-06-06 20:53:36 +01:00
Chris Price
6bd2befa98 Add support for other operating systems besides Redhat/Debian
Prior to this commit, if you attempted to use the module to
manage postgres on any OS other than Redhat/Debian, there
was an explicit check for that, and a call to `fail`.

In reality, the OS family is only used to build up defaults
for various path and package names, which are all exposed
as parameters.  If the user is willing to explicitly pass
in all of those parameters, there's no reason we should
fail based on OS family.

This commit adds checks to the 'default' osfamily case
such that we now only fail if they're on a non-Redhat-or-Debian
system *and* they haven't explicitly passed in values for
all of the required parameters.
2013-06-06 12:23:30 -07:00
Ken Barber
80c85e8f2b Convert system tests to use rspec-system
This patch ports all of the existing system tests to use rspec-system instead.

To assist with this conversion some patches were made to fix OS compatibility
where necessary. We also added an ensure parameter to the postgresql::server
class to assist with removing PostgreSQL configuration to aid with testing
cleanups.

The documentation has been updated to indicate test usage with rspec-system,
we've also renamed the 'tests' directory to 'examples'.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-06-04 15:36:24 +01:00
Dan Prince
03b3df3ab9 Add test on postgresql::python. 2013-04-22 11:30:07 -04:00
Flaper Fesp
bd9bcf4cc2 Add support for psycopg installation 2013-04-22 11:07:50 -04:00
Flaper Fesp
9a307d986a Add support for psycopg installation 2013-04-22 11:04:01 -04:00
Ken Barber
5e4045d0c9 Merge pull request #158 from harbulot/user_nopassword
Adding the ability to create users without a password.
2013-04-12 12:08:49 -07:00
Ken Barber
3804c9323c Merge pull request #162 from domcleal/pp26-fixes
Three Puppet 2.6 fixes
2013-03-27 04:21:06 -07:00
Dominic Cleal
4b5212f803 Enable hasstatus for EL and Puppet 2.6, to detect running server 2013-03-21 18:13:17 +00:00
Dominic Cleal
a8b382276a Change connection_limit default to string, Puppet 2.6 can't parse negative ints 2013-03-21 18:13:05 +00:00
Dominic Cleal
1dd687c882 Add explicit call to concat::setup when creating concat file 2013-03-21 10:13:43 +00:00
Bruno Harbulot
dd05232177 Adding the ability to create users without a password. 2013-03-16 17:32:27 +00:00
Bruno Harbulot
33c56e97ef Setting the owner of the database with createdb. 2013-03-16 16:23:51 +00:00
Kamil Szymanski
82ce5d0480 Add documentation, rspec test and support for global overriding contrib package name 2013-03-02 10:49:57 +01:00
Kamil Szymanski
c6aec41f1b Add supprot for contrib package 2013-03-02 10:46:34 +01:00
Ken Barber
78e183c43b Merge pull request #142 from kamilszymanski/connection_limit
Allow to set connection limit for new role
2013-03-01 06:32:22 -08:00
Kamil Szymanski
e7b25d6b29 Allow to set connection limit for new role 2013-02-28 00:43:24 +01:00
Kamil Szymanski
7a8f7ace59 fix pg_hba_rule for postgres local access 2013-02-27 12:14:13 +01:00
Ken Barber
794ef22934 Fix versions for travis-ci
This fixes some mistakes in the .travis.yml file:

* Corrects matches so the minor gem revisions get rounded, this means 2.6.0
  for example is used.
* Adds Ruby 2.0.0 tests
* Allows 2.6.0 to fail for now, as it doesn't have create_resources.
* Removes trailing commas and arrays in functions for 2.6.0.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-26 14:32:25 +00:00
Jordi Boggiano
49ecb872fa Add support for the REPLICATION flag when creating roles 2013-02-25 19:11:28 +01:00
Ken Barber
501289394a Cleaned up and added unit tests
Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-25 17:50:53 +00:00
Karel Brezina
5ef164b1a6 Generalization to provide more flexibility in postgresql configuration 2013-02-25 17:50:34 +00:00
Michael Arnold
0db0849054 Drop trailing comma to support Puppet 2.6. 2013-02-23 16:09:26 -07:00
Ken Barber
4d70c188e8 (GH-130) Fix 'include' parameter for Postgresql 8.1
This removes the 'include' parameter for PostgreSQL 8.1 as it was failing on
Centos 5.

Also added Centos 5 system tests using our new Vagrant boxes.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-21 19:17:04 +00:00
Erik Dalén
6322aff0e8 don't modify variables 2013-02-15 17:19:31 +00:00
Erik Dalén
23368ffb03 fix lots of style issues 2013-02-15 17:22:52 +01:00
Ken Barber
b9db279c04 Do not run the reload of postgresql as postgresql
While this worked fine in Ubuntu, it failed silently in Centos.

The script is really designed to be ran as root, so removing the user
property. This was failing our new pg_hba_rule tests without it.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-12 00:34:44 +00:00
Ken Barber
86a0453f2f Provide new defined resources for managing pg_hba.conf
This patch provides a more advanced way of managing pg_hba rules, by providing a
defined resource to manage a pg_hba file, and a defined resource for managing
rules within such a file (pg_hba_rule).

These new resources are wrappers around ripinaar-concat, and utilise file
assemblies instead of a template to compose the pg_hba.conf file.

I've provided a function that interprets the old ip4|6acl arrays and converts
them to this new format for backwards compatibility as well.

I slightly reformatted our documentation to allow for better documentation of
defined resources in 'Usage' as well, and provided examples of how to use this
new resource.

This hopefully should go a long way to solving the PR's related to lack of full
functionality for pg_hba.conf.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-12 00:34:42 +00:00
fhrbek
e29e0c0d58 Reverted some of the coding style fixes. Strings containing single quotes may be easier to read if enclosed in double quotes although it generated puppet lint warning. 2013-02-07 10:51:33 +01:00
Ken Barber
39862106b2 Merge pull request #117 from fhrbek/coding_style
Coding style fixes
2013-02-06 14:32:39 -08:00
fhrbek
10cb81468e Coding style fixes 2013-02-06 18:51:58 +01:00
Michael Arnold
bbe92fbc1b Clean up java.pp manifest documentation.
Also clarify postgresql::java rspec test.
2013-02-05 23:22:27 -07:00
Michael Arnold
556ab32b73 Add support for JDBC connector.
Modify params.pp to abstract the package name for the postgresql JDBC
connector and add Class['postgresql::java'].  Also update the README.md
to mention the availability of this class.
2013-02-05 23:22:13 -07:00
Ken Barber
2114333539 Add locale parameter support
This adds the parameter 'locale' to the 'postgresql' class so we have a global
default, and adds it two the defined resources 'postgresql::db' and
'postgresql::database'. This allows users to either:

* Defined a global default for the cluster
* Define a per-database default

As a side-effect I had to make sure 'charset' was also exposed in a similar
manner as some locales need a particular charset to work.

Tests were added to test both the 'createdb' case and 'initdb' case for Redhat,
and some refactoring was done to make the existing non_default test area use
heredocs so my manifests and test code was kept close together. As apposed to
entirely different files and places in the directory structure.

I cleaned up the related execs a little bit, adding logoutput => on_failure
where needed so we can debug failures. Beforehand execs just 'failed', but
now we should be able to get better feedback from failed execs helping support.

I also add intention comments in parts of the Puppet code that I touched where
it made sense.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-05 17:23:52 +00:00
Karel Brezina
236ce4783a Added info about the advanced configuration file 2013-02-01 12:46:59 +01:00
Chris Price
a4ec366811 WIP - adding support for an 'included' config file 2013-01-31 15:56:48 +01:00
Karel Brezina
9114490e9d Tablespacing improvements 2013-01-29 14:05:15 +01:00
Karel Brezina
fad93fbeea Added support for tablespaces 2013-01-28 18:01:11 +01:00
Flaper Fesp
219e7445bd Removed trailing comma. Makes puppet fail 2013-01-18 15:58:47 +01:00
Chris Price
43ded429de Fix revoke command in database.pp to support postgres 8.1
In postgres 8.1, the 'CONNECT' privilege doesn't exist, which
would result in an error if you tried to use the 'database'
type.  This commit conditions the revoke statement to use the
'ALL' privilege on 8.1.
2013-01-16 16:38:24 -08:00
Daniel Pittman
a018be54e7 Merge pull request #79 from Seldaek/patch-2
Add support for ubuntu 12.10 status
2013-01-16 10:17:19 -08:00
Chris Price
1d6ad0ce9b Update CHANGELOG, README, Modulefile for 2.0.0 release 2013-01-15 16:09:10 -08:00
Chris Price
a1d0ef75f0 Add a "require" to make sure the service is up before trying to create a db 2013-01-15 14:43:18 -08:00
Jordi Boggiano
3504405cf0 Add support for ubuntu 12.10 status 2013-01-15 23:31:14 +01:00
Ken Barber
faeac44713 Manage official postgres apt repo
Previously we hadn't supported using the official PostgreSQL repos for deb-based
packaging. This commit fixes that by introducing the management of the apt
repositories on the host as required, and using the correct package and service
name.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-01-15 11:00:24 -08:00
Chris Price
5f705ddf32 Fix merge issue from AMZ linux patch 2013-01-14 14:14:10 -08:00
Ken Barber
3a180d80cb Merge pull request #66 from cprice-puppet/maint/master/allow-version-param-in-main-init
Change API to expose non-default pg version support via main type
2013-01-14 14:04:24 -08:00
Henrik
5c89dc11f9 data dirs on amazon differ 2013-01-14 22:40:59 +01:00
Henrik
6cb9071bfd Updating params.
The OS Family for Amazon Linux is "Linux", and $::operatingsystem is
"Amazon".
2013-01-14 22:40:05 +01:00
Chris Price
1477d03503 Clean up docs for base class (init.pp) 2013-01-14 13:26:34 -08:00
Chris Price
a8e66e6872 Update uses of 'postgresql' to 'postgresql::client' 2013-01-11 14:26:27 -08:00
Chris Price
45669b7f8b Add remaining params to init.pp, and update tests 2013-01-11 14:23:56 -08:00
Hunter Haugen
6c0b1eff95 Update the base class to accept version parameter 2013-01-11 14:23:56 -08:00
Ken Barber
e1acc2774f Fix inherits issue with validate_db_connection
Previously the validate_db_connection defined type was trying to use inherits
like a class. This of course would fail.

After analyzing its usage, I've removed the need for the top-level params
inherit by just including the 'postgresql' module which pulls in the client
package and the params class as well. It also avoids resource duplication
for the client package as well.

To ensure we don't get regression on this I've added system tests that test
this defined type in a success and failure state.

Signed-off-by: Ken Barber <ken@bob.sh>
2013-01-11 21:57:38 +00:00
Ken Barber
358ebc178b Merge pull request #58 from Mosibi/master
Turn the exec in validate_db_connection.pp around
2013-01-11 04:21:44 -08:00
Richard Arends
fcace1e5c0 changed validate_db_connection.pp 2012-12-28 10:00:15 +01:00
Spenser Gilliland
457f80bfe4 Syntax Fix 2012-12-21 17:26:48 -06:00
Brett Porter
6367e359ea add optional cwd to the postgres_psql command
When the psql command runs from a directory it does not have permission to
access, it outputs an error. This error trips up the unless SQL command,
causing the other SQL commands to run even if not needed. Rather than ignore
stderr (which might hide something else), or use an arbitrary directory like
/tmp, this code sets the cwd to the data directory, which will exist and be
owned by the postgres user. If someone uses the postgres_psql type and
customises the psql_user parameter, they should also set an appropriate cwd.
2012-12-14 23:02:18 +11:00
Chris Price
9febf9a6ed Merge pull request #46 from cprice-puppet/feature/master/refactor-default-version-fact
Rework `postgres_default_version` fact
2012-12-11 07:36:42 -08:00
Florin Broasca
b02556f96c Fix default version for Ubuntu and Debian 2012-12-09 23:56:27 +02:00
Chris Price
97af59e701 Fix GPG key for yum.postgresl.org
The GPG key for yum.postgresql.org was in the wrong directory,
and as written, would have only supported postgres 9.2 anyway.

I looked at the yum rpms for a few other versions besides 9.2,
and they appear to be using the same GPG key.  So this commit
assumes that they all are doing so, and it sets things up
accordingly.  Hopefully this will make the yumrepo support
compatible with other versions of postgres besides 9.2, but I
haven't added that to the actual test matrix yet.
2012-12-07 11:34:30 -08:00
Chris Price
208b663ad1 Rework postgres_default_version fact
This commit fixes up the `postgres_default_version` fact so that
it doesn't use apt/yum (slow), and instead just has a hard-coded
list of default postgres versions for various OS versions.  We
will need to add new OS versions to this fact over time, but that
seems preferable to the previous implementation which was causing
slower puppet runs on all nodes (regardless of whether they were
actually using postgres or not).
2012-12-07 10:40:18 -08:00
Chris Price
afd8e90dd5 Fix to 'require' for database_grant 2012-12-06 14:35:42 -08:00
Chris Price
228e5c5337 Cleanup and move control of version into params
Thanks to some tricks I learned from Nan Liu and Dan Bode, I was
able to figure out a way to move all of the new version-related stuff
back into the params class, and clean up some of the if/_real stuff.

Basic tests for centos6 + pg 9.2 are passing.
2012-12-04 14:12:41 -08:00
Chris Price
18167c7a3e Merge platform.pp back into params.pp
Nan showed me a trick that will let us keep all of that param stuff
inside of params.pp, make it a parameterized class, and still support
the ability for users to specify a custom (non-system-default) pg
version.  This commit takes the first step towards that pattern by
consolidating platform.pp and params.pp.  (Everything old is new again!)
2012-12-04 14:12:34 -08:00
Chris Price
fa24f24397 Re-add support for managing yumrepo
This commit creates a new class called `package_source_info`,
which has some initial framework for managing the postgresql.org
yumrepo.  It also serves as a container for the 'version'
variable that is needed by the 'platform' class in order to
use other versions of postgres besides the system default.
2012-12-02 23:06:36 -08:00
Chris Price
663c779309 A few minor fixes to get tests passing again 2012-12-02 22:05:57 -08:00
Chris Price
de45945aff Merge ::paths and ::packages into one class, called ::platform. 2012-12-02 20:59:18 -08:00
Chris Price
90ed7aaf6d Working on getting ubuntu specs passing again
The service provider / status stuff got a little broken during
the refactors.  This should mostly fix it but there is still
one spec failing, and I will probably also refactor the
paths.pp and packages.pp into a single file together eventually.
2012-12-02 20:56:36 -08:00
Etienne Pelletier
d1025e90ef Removed references to postgresql::paths in class params. 2012-12-02 20:56:36 -08:00
Etienne Pelletier
33add5e10a Removed postgresql::version class and moved version info to init.pp. 2012-12-02 20:56:29 -08:00
Etienne Pelletier
db1a34e7ea Removed references to $postgresql::paths in class params. 2012-12-02 20:54:39 -08:00
Etienne Pelletier
ca701b303c Removed repo class. 2012-12-02 20:54:39 -08:00
Chris Price
2a108abe8b Fix paths 2012-12-02 20:54:39 -08:00
Etienne Pelletier
1fe9559bbe Refactored multi-version support. 2012-12-02 20:54:33 -08:00
Etienne Pelletier
a5d3de2dc4 Pulled repository stuff out of params.
Lint cleanup.
2012-12-02 20:49:47 -08:00
Chris Price
b9a51be36e Fix paths 2012-12-02 20:49:47 -08:00
Etienne Pelletier
8e96959ca8 Added easier support for Postgresql 9.0 (on RedHat platforms) 2012-12-02 20:49:47 -08:00
Chris Price
1b82be0f89 A little more framework for CentOS pg9 testing 2012-12-02 20:47:04 -08:00
Chris Price
df92c96791 Refactor tests and add CentOS6 image
This commit does a fairly major refactor of how the spec tests
are laid out.  The main goal was to make it easier to run
a subset of the tests--e.g., the ability to only run tests
on a single OS via a simple rspec command.

The test logic is now defined in some shared examples in the
`support` directory.  There are now spec folders for each
distro, which contain some stubs to include the shared examples
as well as a Vagrantfile for the particular distro.

Also, the system-default postgres package tests now run
successfully against the CentOS6 VM that is defined by the
Vagrantfile.
2012-12-02 15:28:25 -08:00
Chris Price
76fcf269d8 Merge branch 'master' into cprice-puppet-feature/master/port-psql-to-ruby
Conflicts:
	manifests/database.pp
	manifests/database_grant.pp
	manifests/psql.pp
	manifests/role.pp
2012-11-30 15:49:07 -08:00
Spenser Gilliland
f7a939b290 Fix Issue #38: Require postgresql-server package to run initdb exec 2012-11-27 13:58:30 -06:00
Andreas Ntaflos
d44de361b6 Set sensible path in exec to reload postgres
In the exec resource to reload postgres add path parameter and set it to
"/usr/bin:/usr/sbin:/bin:/sbin", so that the service command can be
called correctly on different platforms.
2012-11-15 16:39:56 +01:00
Andreas Ntaflos
19a512b06d Add new exec 'reload_postgresql' and have the pg_hba.conf file resource
notify that exec after changes to pg_hba.conf. This avoids restarting
the whole postgresql cluster for configuration changes in pg_hba.conf
which only need a reload.
2012-11-09 23:46:16 +01:00
Chris Price
7612cb9539 Merge pull request #32 from antaflos/quote-dbname
Properly quote database name when using postgresql::psql
2012-11-09 08:13:31 -08:00
Andreas Ntaflos
c4147a4105 Properly quote database name when using postgresql::psql for GRANT or REVOKE. 2012-11-09 04:20:36 +01:00
Etienne Pelletier
9adcd182f8 Added check before adding postgresql::user
This is to make sure there are no duplicate definitions when creating multiple
databases owned by the same user.
2012-11-08 12:50:08 -06:00
Chris Price
2a922f104a Initial working implementation of ruby psql type/provider
This commit provides a working implementation of a ruby
type/provider (`postgresql_psql` for handling the PSQL
commands.  This is a little more flexible than doing it
via Exec resources, which is what the `postgresql::psql`
type was doing.

The old type is still present but now includes a
deprecation notification, and all of the other types
that were using the `::psql` type have been ported over
to use the `postgresql_psql` type instead.
2012-11-04 21:47:49 -08:00
William Van Hevelingen
bdf6c0b84c Puppet lint fixes
- left longer than 80 char warnings
 - left inherits params class warnings
2012-11-03 02:37:20 +00:00
Albert Koch
9a0716f127 Support special characters in database role name
This will allow characters such as '-' in database role
names. Additionally, escaping of '"' characters now applies to all '"'
characters, not just the first in a sql command.
2012-11-01 09:45:20 -04:00
Chris Price
c3c4d32267 Merge pull request #19 from jarib/fix-path-for-cat
Fix path for `/bin/cat`
2012-10-29 10:47:03 -07:00
Chris Price
8529c1fa46 Add deprecation warning for postgres::psql
This commit adds a deprecation warning for the
Exec-based postgres::psql type, and a test
to verify that the deprecation warning is
being generated.
2012-10-27 18:41:47 -07:00
dharwood
b8389d19ad ACLs functioning, added examples in README and test, comments in config manifests 2012-10-22 12:34:24 -07:00
stormcrow
399709a483 first commit of acls 2012-10-21 23:46:54 -07:00
Jari Bakken
1fe7a87923 Fix path for /bin/cat 2012-10-21 18:52:02 +02:00
Kenn Knowles
22e71423d4 Merge pull request #17 from puppetlabs-operations/master
Add postgresql::devel for development dependencies
2012-10-18 04:19:37 -07:00
Kenn Knowles
389833f87d Merge pull request #11 from cprice-puppet/bug/master/better-title-for-persist-firewall-resource
Give the persist-firewall Exec a more explicit name
2012-10-18 04:19:15 -07:00
Adrien Thebo
5e713569ac Add postgresql::devel for development dependencies 2012-10-16 21:22:30 -07:00
Henrik
1026da2914 mis-spelt param names 2012-10-04 12:16:40 +02:00
Henrik
9af4019354 $quoted_unless had extra $ 2012-10-04 12:14:46 +02:00
Henrik
69e38d5ceb missing 'default' selector case 2012-10-04 12:13:00 +02:00
Henrik
e0c1836b2e end of line comma not valid in versions < 2.8.7 2012-10-04 12:12:12 +02:00
Matthaus Owens
82c5863431 Update status for postgres service on Debian
The postgresql init script on debian/ubuntu returns 0 no matter whether postgresql is started or stopped, so puppet has no way of knowing whether to start postgresql when the service is set to 'ensure => running'. This commit adds a param to the params class called $service_status which is set to the status piped to an egrep on debian/ubuntu, which reliably returns 0 if there are clusters running and 1 if there are none. The output before and after this patch can be seen below. If the init script is fixed at some point, the logic would need to be revisited.

Before patch postgresql remains stopped after puppet run.

$ # service postgresql stop
$ #   * Stopping PostgreSQL 9.1 database server
$ # puppet apply -e "class {'postgresql::server':}"
$ #   notice: Finished catalog run in 0.15 seconds
$ # service postgresql status
$ #   Running clusters:

After patch postgresql is started after puppet run.

$ # service postgresql stop
$ #   * Stopping PostgreSQL 9.1 database server
$ # puppet apply -e "class {'postgresql::server':}"
$ #   notice: /Stage[main]/Postgresql::Server/Service[postgresqld]/ensure: ensure changed 'stopped' to 'running'
$ #   notice: Finished catalog run in 2.26 seconds
$ # service postgresql status
$ #   Running clusters: 9.1/main
2012-09-28 15:53:33 -07:00
Chris Price
f221c8a6a4 Give the persist-firewall Exec a more explicit name
The title I'd used for the persist-firewall resource
was too generic, and fairly likely to collide with
resources in other modules.  This commit simply
renames it to be a bit more explicit about belonging
to this module, to reduce the likelihood of a title
collision.
2012-09-21 09:02:59 -07:00
Kenn Knowles
7181817e6a Merge pull request #9 from cprice-puppet/feature/master/connection-validator
Feature/master/connection validator
2012-09-16 18:34:58 -07:00
Chris Price
fd1b15b950 Add a type for validating a postgres connection
This commit adds a new resource type that can be used to validate
that a successful postgres connection can be established from a
puppet node to a (potentially remote) postgres database instance.
2012-09-14 13:26:28 -07:00
Matthaus Litteken
61f077bb20 Remove $service_provider setting for ubuntu
Ubuntu's precise ships with init scripts, not with upstart service definitions. Declaring the provider to be upstart will cause service management on postgres to fail. Leaving it undefined will allow puppet to select the correct (init) provider.
2012-09-12 22:11:10 -07:00
Jari Bakken
f9dbf4a9c9 Remove trailing commas.
This makes the module work on Puppet 2.7.1 (from Ubuntu 11.10).
2012-08-25 03:20:27 +02:00
Chris Price
9eab95eee0 Update Vagrant tests to be compatible with new structure 2012-07-29 13:35:39 -07:00
Chris Price
2703830d58 Try to make the pg_hba.conf work on postgres 8.1 2012-07-19 18:02:12 -07:00
Chris Price
cc5cad39a7 Fix for debian 6 service name
It turns out that Ubuntu and Debian have different names
for the postgres service; this fix makes the module
compatible with debian 6.
2012-06-14 15:12:51 -07:00
Chris Price
1175ea20d6 Add postgresql::db convenience type, improve security
This commit adds a postgresql::db type for convenience;
it mirrors the 'db' type from the mysql module, which
allows you to create a database instance and user plus
grant privileges to that user all in one succint
resource.

This commit also improves security in the following ways:

* Revoke "CONNECT" privilege from the 'public' role for
  newly created databases; without this, any database
  created via this module will allow connections from
  any database user, and will allow them to do things
  like create tables.

* Change to a 'reject'-based policy for dealing with
  remote connections by the postgres user in pg_hba.conf.
  Prior to this commit, if you tried to restrict access
  to the postgres user by IP, the rule would simply not
  match for disallowed IPs; then it would fall through
  to the rule for "all" users, which could still match
  and thus allow the postgres user to connect remotely.
2012-06-09 09:23:11 -07:00
Chris Price
45055d324c Bring database, database_user, and database_grant into alignment with mysql module
Renamed a few files and made some tweaks to try to get
database_grant, database_user, and database types into
a state where they work very similarly to the ones in
the mysql module.  Also introduced a "postgresql_password"
function that can be used to generate an md5 password
hash for a postgres user.
2012-06-08 22:30:27 -07:00
Chris Price
ba802475ff Improve configuration for initial postgres install
This commit adds some configuration management for
postgres, to allow users to get a more complete
setup from their initial install.  Prior to this
commit, we were basically only ensuring that the
package was installed and the service was running.

Now, we support limited configuration for the
pg_hba.conf file to enable md5 authentication for
remote hosts, and for the postgresql.conf file
to specify the listener addresses where TCP
connections should be accepted.  Without these
two changes the initial postgres configuration
doesn't allow *any* connections from outside of the
local host.

This commit also adds an option for opening up the
postgres port in the firewall on redhat-based systems,
and an option to allow setting the password for the
'postgres' database user.

As of this commit, this module now has dependencies
on puppetlabs-stdlib (version > 2.3.4, which includes
the new 'match' parameter for the 'file_line' resource
type), and on puppetlabs-firewall.
2012-06-08 14:00:24 -07:00
Chris Price
6034e122de Working version of postgresql::server
This is a first working version of postgresql::server.
It includes a very simple test manifest, which has
been tried out on CentOS6 and Ubuntu 10.04; initial
tests were successful both from a clean state and
for subsequent runs.

Includes a new fact called 'postgres_default_version',
which detects what the default version of postgres is
for a given OS.  This is needed because some of the
commands and directory names include this version string.

Current implementation *only* supports managing the
system default version; in the future it would be nice
to allow the user to explicitly specify a postgres version,
but that isn't yet supported.

The "postgresql::server" class includes a call to postgres's
initdb command on redhat systems, because they don't do
this automatically when the package is installed.
2012-06-08 13:37:21 -07:00
Chris Price
21467c8359 Moved files up to root directory
Working on restructuring things to more closely match up with
the layout of puppetlabs-mysql.
2012-06-08 13:37:13 -07:00