Skip to content

Commit 572f090

Browse files
committed
Merge pull request #135 from kamilszymanski/contrib
Add supprot for contrib package
2 parents 78e183c + 82ce5d0 commit 572f090

File tree

6 files changed

+128
-66
lines changed

6 files changed

+128
-66
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ Classes:
116116
* [postgresql](#class-postgresql)
117117
* [postgresql::server](#class-postgresqlserver)
118118
* [postgresql::client](#class-postgresqlclient)
119+
* [postgresql::contrib](#class-postgresqlcontrib)
119120
* [postgresql::devel](#class-postgresqldevel)
120121
* [postgresql::java](#class-postgresqljava)
121122

@@ -179,6 +180,9 @@ This setting can be used to override the default postgresql client package name.
179180
####`server_package_name`
180181
This setting can be used to override the default postgresql server package name. If not specified, the module will use whatever package name is the default for your OS distro.
181182

183+
####`contrib_package_name`
184+
This setting can be used to override the default postgresql contrib package name. If not specified, the module will use whatever package name is the default for your OS distro.
185+
182186
####`devel_package_name`
183187
This setting can be used to override the default postgresql devel package name. If not specified, the module will use whatever package name is the default for your OS distro.
184188

@@ -237,6 +241,15 @@ The name of the postgresql client package.
237241
####`package_ensure`
238242
The ensure parameter passed on to postgresql client package resource.
239243

244+
###Class: postgresql::contrib
245+
Installs the postgresql contrib package.
246+
247+
####`package_name`
248+
The name of the postgresql client package.
249+
250+
####`package_ensure`
251+
The ensure parameter passed on to postgresql contrib package resource.
252+
240253
###Class: postgresql::devel
241254
Installs the packages containing the development libraries for PostgreSQL.
242255

manifests/contrib.pp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Class: postgresql::contrib
2+
#
3+
# This class installs the postgresql contrib package.
4+
#
5+
# Parameters:
6+
# [*package_name*] - The name of the postgresql contrib package.
7+
# [*package_ensure*] - The ensure value of the package.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# class { 'postgresql::contrib': }
16+
#
17+
class postgresql::contrib (
18+
$package_name = $postgresql::params::contrib_package_name,
19+
$package_ensure = 'present'
20+
) inherits postgresql::params {
21+
22+
package { 'postgresql-contrib':
23+
ensure => $package_ensure,
24+
name => $package_name,
25+
}
26+
}

manifests/init.pp

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@
5858
# postgresql server package name. If not specified, the module
5959
# will use whatever package name is the default for your
6060
# OS distro.
61+
# [*contrib_package_name*]
62+
# This setting can be used to override the default
63+
# postgresql contrib package name. If not specified, the module
64+
# will use whatever package name is the default for your
65+
# OS distro.
6166
# [*devel_package_name*]
6267
# This setting can be used to override the default
6368
# postgresql devel package name. If not specified, the module
@@ -99,40 +104,42 @@
99104
#
100105
#
101106
class postgresql (
102-
$version = $::postgres_default_version,
103-
$manage_package_repo = false,
104-
$package_source = undef,
105-
$locale = undef,
106-
$charset = 'UTF8',
107-
$datadir = undef,
108-
$confdir = undef,
109-
$bindir = undef,
110-
$client_package_name = undef,
111-
$server_package_name = undef,
112-
$devel_package_name = undef,
113-
$java_package_name = undef,
114-
$service_name = undef,
115-
$user = undef,
116-
$group = undef,
117-
$run_initdb = undef
107+
$version = $::postgres_default_version,
108+
$manage_package_repo = false,
109+
$package_source = undef,
110+
$locale = undef,
111+
$charset = 'UTF8',
112+
$datadir = undef,
113+
$confdir = undef,
114+
$bindir = undef,
115+
$client_package_name = undef,
116+
$server_package_name = undef,
117+
$contrib_package_name = undef,
118+
$devel_package_name = undef,
119+
$java_package_name = undef,
120+
$service_name = undef,
121+
$user = undef,
122+
$group = undef,
123+
$run_initdb = undef
118124
) {
119125

120126
class { 'postgresql::params':
121-
version => $version,
122-
manage_package_repo => $manage_package_repo,
123-
package_source => $package_source,
124-
locale => $locale,
125-
charset => $charset,
126-
custom_datadir => $datadir,
127-
custom_confdir => $confdir,
128-
custom_bindir => $bindir,
129-
custom_client_package_name => $client_package_name,
130-
custom_server_package_name => $server_package_name,
131-
custom_devel_package_name => $devel_package_name,
132-
custom_java_package_name => $java_package_name,
133-
custom_service_name => $service_name,
134-
custom_user => $user,
135-
custom_group => $group,
136-
run_initdb => $run_initdb,
127+
version => $version,
128+
manage_package_repo => $manage_package_repo,
129+
package_source => $package_source,
130+
locale => $locale,
131+
charset => $charset,
132+
custom_datadir => $datadir,
133+
custom_confdir => $confdir,
134+
custom_bindir => $bindir,
135+
custom_client_package_name => $client_package_name,
136+
custom_server_package_name => $server_package_name,
137+
custom_contrib_package_name => $contrib_package_name,
138+
custom_devel_package_name => $devel_package_name,
139+
custom_java_package_name => $java_package_name,
140+
custom_service_name => $service_name,
141+
custom_user => $user,
142+
custom_group => $group,
143+
run_initdb => $run_initdb,
137144
}
138145
}

manifests/params.pp

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,23 @@
2828
# correct paths to the postgres dirs.
2929

3030
class postgresql::params(
31-
$version = $::postgres_default_version,
32-
$manage_package_repo = false,
33-
$package_source = undef,
34-
$locale = undef,
35-
$charset = 'UTF8',
36-
$custom_datadir = undef,
37-
$custom_confdir = undef,
38-
$custom_bindir = undef,
39-
$custom_client_package_name = undef,
40-
$custom_server_package_name = undef,
41-
$custom_devel_package_name = undef,
42-
$custom_java_package_name = undef,
43-
$custom_service_name = undef,
44-
$custom_user = undef,
45-
$custom_group = undef,
46-
$run_initdb = undef
31+
$version = $::postgres_default_version,
32+
$manage_package_repo = false,
33+
$package_source = undef,
34+
$locale = undef,
35+
$charset = 'UTF8',
36+
$custom_datadir = undef,
37+
$custom_confdir = undef,
38+
$custom_bindir = undef,
39+
$custom_client_package_name = undef,
40+
$custom_server_package_name = undef,
41+
$custom_contrib_package_name = undef,
42+
$custom_devel_package_name = undef,
43+
$custom_java_package_name = undef,
44+
$custom_service_name = undef,
45+
$custom_user = undef,
46+
$custom_group = undef,
47+
$run_initdb = undef
4748
) {
4849
$user = pick($custom_user, 'postgres')
4950
$group = pick($custom_group, 'postgres')
@@ -109,21 +110,23 @@
109110
$persist_firewall_command = '/sbin/iptables-save > /etc/sysconfig/iptables'
110111

111112
if $version == $::postgres_default_version {
112-
$client_package_name = pick($custom_client_package_name, 'postgresql')
113-
$server_package_name = pick($custom_server_package_name, 'postgresql-server')
114-
$devel_package_name = pick($custom_devel_package_name, 'postgresql-devel')
115-
$java_package_name = pick($custom_java_package_name, 'postgresql-jdbc')
113+
$client_package_name = pick($custom_client_package_name, 'postgresql')
114+
$server_package_name = pick($custom_server_package_name, 'postgresql-server')
115+
$contrib_package_name = pick($custom_contrib_package_name,'postgresql-contrib')
116+
$devel_package_name = pick($custom_devel_package_name, 'postgresql-devel')
117+
$java_package_name = pick($custom_java_package_name, 'postgresql-jdbc')
116118
$service_name = pick($custom_service_name, 'postgresql')
117119
$bindir = pick($custom_bindir, '/usr/bin')
118120
$datadir = pick($custom_datadir, '/var/lib/pgsql/data')
119121
$confdir = pick($custom_confdir, $datadir)
120122
} else {
121-
$version_parts = split($version, '[.]')
122-
$package_version = "${version_parts[0]}${version_parts[1]}"
123-
$client_package_name = pick($custom_client_package_name, "postgresql${package_version}")
124-
$server_package_name = pick($custom_server_package_name, "postgresql${package_version}-server")
125-
$devel_package_name = pick($custom_devel_package_name, "postgresql${package_version}-devel")
126-
$java_package_name = pick($custom_java_package_name, "postgresql${package_version}-jdbc")
123+
$version_parts = split($version, '[.]')
124+
$package_version = "${version_parts[0]}${version_parts[1]}"
125+
$client_package_name = pick($custom_client_package_name, "postgresql${package_version}")
126+
$server_package_name = pick($custom_server_package_name, "postgresql${package_version}-server")
127+
$contrib_package_name = pick($custom_contrib_package_name,"postgresql${package_version}-contrib")
128+
$devel_package_name = pick($custom_devel_package_name, "postgresql${package_version}-devel")
129+
$java_package_name = pick($custom_java_package_name, "postgresql${package_version}-jdbc")
127130
$service_name = pick($custom_service_name, "postgresql-${version}")
128131
$bindir = pick($custom_bindir, "/usr/pgsql-${version}/bin")
129132
$datadir = pick($custom_datadir, "/var/lib/pgsql/${version}/data")
@@ -154,14 +157,15 @@
154157
}
155158
}
156159

157-
$client_package_name = pick($custom_client_package_name, "postgresql-client-${version}")
158-
$server_package_name = pick($custom_server_package_name, "postgresql-${version}")
159-
$devel_package_name = pick($custom_devel_package_name, 'libpq-dev')
160-
$java_package_name = pick($custom_java_package_name, 'libpostgresql-jdbc-java')
161-
$bindir = pick($custom_bindir, "/usr/lib/postgresql/${version}/bin")
162-
$datadir = pick($custom_datadir, "/var/lib/postgresql/${version}/main")
163-
$confdir = pick($custom_confdir, "/etc/postgresql/${version}/main")
164-
$service_status = "/etc/init.d/${service_name} status | /bin/egrep -q 'Running clusters: .+|online'"
160+
$client_package_name = pick($custom_client_package_name, "postgresql-client-${version}")
161+
$server_package_name = pick($custom_server_package_name, "postgresql-${version}")
162+
$contrib_package_name = pick($custom_contrib_package_name, "postgresql-contrib-${version}")
163+
$devel_package_name = pick($custom_devel_package_name, 'libpq-dev')
164+
$java_package_name = pick($custom_java_package_name, 'libpostgresql-jdbc-java')
165+
$bindir = pick($custom_bindir, "/usr/lib/postgresql/${version}/bin")
166+
$datadir = pick($custom_datadir, "/var/lib/postgresql/${version}/main")
167+
$confdir = pick($custom_confdir, "/etc/postgresql/${version}/main")
168+
$service_status = "/etc/init.d/${service_name} status | /bin/egrep -q 'Running clusters: .+|online'"
165169
}
166170

167171
default: {

spec/unit/classes/contrib_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
require 'spec_helper'
2+
3+
describe 'postgresql::contrib', :type => :class do
4+
let :facts do
5+
{
6+
:postgres_default_version => '8.4',
7+
:osfamily => 'Debian',
8+
}
9+
end
10+
it { should include_class("postgresql::contrib") }
11+
end

spec/unit/classes/init_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
:bindir => '/opt/pg/bin',
2222
:client_package_name => 'my-postgresql-client',
2323
:server_package_name => 'my-postgresql-server',
24+
:contrib_package_name => 'my-postgresql-contrib',
2425
:devel_package_name => 'my-postgresql-devel',
2526
:java_package_name => 'my-postgresql-java',
2627
:service_name => 'my-postgresql',

0 commit comments

Comments
 (0)