Skip to content

Commit ad97f9e

Browse files
committed
Adding a class to install the debuginfo package similar to the contrib package.
1 parent f040dd2 commit ad97f9e

File tree

3 files changed

+126
-54
lines changed

3 files changed

+126
-54
lines changed

manifests/params.pp

Lines changed: 63 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
$client_package_name = pick($client_package_name, 'postgresql')
3636
$server_package_name = pick($server_package_name, 'postgresql-server')
3737
$contrib_package_name = pick($contrib_package_name,'postgresql-contrib')
38+
$debuginfo_package_name = pick($debuginfo_package_name,'postgresql-contrib')
3839
$devel_package_name = pick($devel_package_name, 'postgresql-devel')
3940
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
4041
$docs_package_name = pick($docs_package_name, 'postgresql-docs')
@@ -51,6 +52,7 @@
5152
$client_package_name = pick($client_package_name, "postgresql${package_version}")
5253
$server_package_name = pick($server_package_name, "postgresql${package_version}-server")
5354
$contrib_package_name = pick($contrib_package_name,"postgresql${package_version}-contrib")
55+
$debuginfo_package_name = pick($contrib_package_name,"postgresql${package_version}-debuginfo")
5456
$devel_package_name = pick($devel_package_name, "postgresql${package_version}-devel")
5557
$java_package_name = pick($java_package_name, "postgresql${package_version}-jdbc")
5658
$docs_package_name = pick($docs_package_name, "postgresql${package_version}-docs")
@@ -103,6 +105,8 @@
103105
$devel_package_name = pick($devel_package_name, 'postgresql-devel')
104106
# Archlinux does have postgresql-contrib but it isn't maintained
105107
$contrib_package_name = pick($contrib_package_name,'undef')
108+
# Archlinux does have postgresql-debuginfo but it isn't maintained
109+
$debuginfo_package_name = pick($debuginfo_package_name,'undef')
106110
# Archlinux postgresql package provides plperl
107111
$plperl_package_name = pick($plperl_package_name, 'undef')
108112
$plpython_package_name = pick($plpython_package_name, 'undef')
@@ -142,6 +146,8 @@
142146
$client_package_name = pick($client_package_name, "postgresql-client-${version}")
143147
$server_package_name = pick($server_package_name, "postgresql-${version}")
144148
$contrib_package_name = pick($contrib_package_name, "postgresql-contrib-${version}")
149+
# Debian does not have a debuginfo package
150+
$debuginfo_package_name = pick($debuginfo_package_name, 'undef')
145151
if $postgis_version and versioncmp($postgis_version, '2') < 0 {
146152
$postgis_package_name = pick($postgis_package_name, "postgresql-${version}-postgis")
147153
} else {
@@ -171,77 +177,80 @@
171177
}
172178

173179
'FreeBSD': {
174-
$link_pg_config = true
175-
$user = pick($user, 'pgsql')
176-
$group = pick($group, 'pgsql')
180+
$link_pg_config = true
181+
$user = pick($user, 'pgsql')
182+
$group = pick($group, 'pgsql')
177183

178-
$client_package_name = pick($client_package_name, "databases/postgresql${version}-client")
179-
$server_package_name = pick($server_package_name, "databases/postgresql${version}-server")
180-
$contrib_package_name = pick($contrib_package_name, "databases/postgresql${version}-contrib")
181-
$devel_package_name = pick($devel_package_name, 'databases/postgresql-libpqxx3')
182-
$java_package_name = pick($java_package_name, 'databases/postgresql-jdbc')
183-
$perl_package_name = pick($plperl_package_name, 'databases/p5-DBD-Pg')
184-
$plperl_package_name = pick($plperl_package_name, "databases/postgresql${version}-plperl")
185-
$python_package_name = pick($python_package_name, 'databases/py-psycopg2')
184+
$client_package_name = pick($client_package_name, "databases/postgresql${version}-client")
185+
$server_package_name = pick($server_package_name, "databases/postgresql${version}-server")
186+
$contrib_package_name = pick($contrib_package_name, "databases/postgresql${version}-contrib")
187+
$debuginfo_package_name = pick($debuginfo_package_name, "databases/postgresql${version}-debuginfo")
188+
$devel_package_name = pick($devel_package_name, 'databases/postgresql-libpqxx3')
189+
$java_package_name = pick($java_package_name, 'databases/postgresql-jdbc')
190+
$perl_package_name = pick($plperl_package_name, 'databases/p5-DBD-Pg')
191+
$plperl_package_name = pick($plperl_package_name, "databases/postgresql${version}-plperl")
192+
$python_package_name = pick($python_package_name, 'databases/py-psycopg2')
186193

187-
$service_name = pick($service_name, 'postgresql')
188-
$bindir = pick($bindir, '/usr/local/bin')
189-
$datadir = pick($datadir, '/usr/local/pgsql/data')
190-
$confdir = pick($confdir, $datadir)
191-
$service_status = pick($service_status, "/usr/local/etc/rc.d/${service_name} onestatus")
192-
$service_reload = "service ${service_name} reload"
193-
$psql_path = pick($psql_path, "${bindir}/psql")
194+
$service_name = pick($service_name, 'postgresql')
195+
$bindir = pick($bindir, '/usr/local/bin')
196+
$datadir = pick($datadir, '/usr/local/pgsql/data')
197+
$confdir = pick($confdir, $datadir)
198+
$service_status = pick($service_status, "/usr/local/etc/rc.d/${service_name} onestatus")
199+
$service_reload = "service ${service_name} reload"
200+
$psql_path = pick($psql_path, "${bindir}/psql")
194201

195-
$needs_initdb = pick($needs_initdb, true)
202+
$needs_initdb = pick($needs_initdb, true)
196203
}
197204

198205
'OpenBSD': {
199206
$user = pick($user, '_postgresql')
200207
$group = pick($group, '_postgresql')
201208

202-
$client_package_name = pick($client_package_name, 'postgresql-client')
203-
$server_package_name = pick($server_package_name, 'postgresql-server')
204-
$contrib_package_name = pick($contrib_package_name, 'postgresql-contrib')
205-
$devel_package_name = pick($devel_package_name, 'postgresql-client')
206-
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
207-
$perl_package_name = pick($perl_package_name, 'databases/p5-DBD-Pg')
208-
$plperl_package_name = undef
209-
$python_package_name = pick($python_package_name, 'py-psycopg2')
209+
$client_package_name = pick($client_package_name, 'postgresql-client')
210+
$server_package_name = pick($server_package_name, 'postgresql-server')
211+
$contrib_package_name = pick($contrib_package_name, 'postgresql-contrib')
212+
$debuginfo_package_name = pick($debuginfo_package_name, 'postgresql-debuginfo')
213+
$devel_package_name = pick($devel_package_name, 'postgresql-client')
214+
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
215+
$perl_package_name = pick($perl_package_name, 'databases/p5-DBD-Pg')
216+
$plperl_package_name = undef
217+
$python_package_name = pick($python_package_name, 'py-psycopg2')
210218

211-
$service_name = pick($service_name, 'postgresql')
212-
$bindir = pick($bindir, '/usr/local/bin')
213-
$datadir = pick($datadir, '/var/postgresql/data')
214-
$confdir = pick($confdir, $datadir)
215-
$service_status = pick($service_status, "/etc/rc.d/${service_name} check")
216-
$service_reload = "/etc/rc.d/${service_name} reload"
217-
$psql_path = pick($psql_path, "${bindir}/psql")
219+
$service_name = pick($service_name, 'postgresql')
220+
$bindir = pick($bindir, '/usr/local/bin')
221+
$datadir = pick($datadir, '/var/postgresql/data')
222+
$confdir = pick($confdir, $datadir)
223+
$service_status = pick($service_status, "/etc/rc.d/${service_name} check")
224+
$service_reload = "/etc/rc.d/${service_name} reload"
225+
$psql_path = pick($psql_path, "${bindir}/psql")
218226

219-
$needs_initdb = pick($needs_initdb, true)
227+
$needs_initdb = pick($needs_initdb, true)
220228
}
221229

222230
'Suse': {
223-
$link_pg_config = true
224-
$user = pick($user, 'postgres')
225-
$group = pick($group, 'postgres')
231+
$link_pg_config = true
232+
$user = pick($user, 'postgres')
233+
$group = pick($group, 'postgres')
226234

227-
$client_package_name = pick($client_package_name, "postgresql${version}")
228-
$server_package_name = pick($server_package_name, "postgresql${version}-server")
229-
$contrib_package_name = pick($contrib_package_name, "postgresql${version}-contrib")
230-
$devel_package_name = pick($devel_package_name, "postgresql${version}-devel")
231-
$java_package_name = pick($java_package_name, "postgresql${version}-jdbc")
232-
$perl_package_name = pick($plperl_package_name, 'perl-DBD-Pg')
233-
$plperl_package_name = pick($plperl_package_name, "postgresql${version}-plperl")
234-
$python_package_name = pick($python_package_name, 'python-psycopg2')
235+
$client_package_name = pick($client_package_name, "postgresql${version}")
236+
$server_package_name = pick($server_package_name, "postgresql${version}-server")
237+
$contrib_package_name = pick($contrib_package_name, "postgresql${version}-contrib")
238+
$debuginfo_package_name = pick($debuginfo_package_name, "postgresql${version}-debuginfo")
239+
$devel_package_name = pick($devel_package_name, "postgresql${version}-devel")
240+
$java_package_name = pick($java_package_name, "postgresql${version}-jdbc")
241+
$perl_package_name = pick($plperl_package_name, 'perl-DBD-Pg')
242+
$plperl_package_name = pick($plperl_package_name, "postgresql${version}-plperl")
243+
$python_package_name = pick($python_package_name, 'python-psycopg2')
235244

236-
$service_name = pick($service_name, 'postgresql')
237-
$bindir = pick($bindir, "/usr/lib/postgresql${version}/bin")
238-
$datadir = pick($datadir, '/var/lib/pgsql/data')
239-
$confdir = pick($confdir, $datadir)
240-
$service_status = pick($service_status, "/etc/init.d/${service_name} status")
241-
$service_reload = "/etc/init.d/${service_name} reload"
242-
$psql_path = pick($psql_path, "${bindir}/psql")
245+
$service_name = pick($service_name, 'postgresql')
246+
$bindir = pick($bindir, "/usr/lib/postgresql${version}/bin")
247+
$datadir = pick($datadir, '/var/lib/pgsql/data')
248+
$confdir = pick($confdir, $datadir)
249+
$service_status = pick($service_status, "/etc/init.d/${service_name} status")
250+
$service_reload = "/etc/init.d/${service_name} reload"
251+
$psql_path = pick($psql_path, "${bindir}/psql")
243252

244-
$needs_initdb = pick($needs_initdb, true)
253+
$needs_initdb = pick($needs_initdb, true)
245254
}
246255

247256
default: {

manifests/server/debuginfo.pp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Install the contrib postgresql packaging. See README.md for more details.
2+
class postgresql::server::debuginfo (
3+
$package_name = $postgresql::params::debuginfo_package_name,
4+
$package_ensure = 'present'
5+
) inherits postgresql::params {
6+
validate_string($package_name)
7+
8+
package { 'postgresql-debuginfo':
9+
ensure => $package_ensure,
10+
name => $package_name,
11+
tag => 'postgresql',
12+
}
13+
14+
anchor { 'postgresql::server::contrib::start': }->
15+
Class['postgresql::server::install']->
16+
Package['postgresql-debuginfo']->
17+
Class['postgresql::server::service']->
18+
anchor { 'postgresql::server::contrib::end': }
19+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
require 'spec_helper'
2+
3+
describe 'postgresql::server::debuginfo', :type => :class do
4+
let :pre_condition do
5+
"class { 'postgresql::server': }"
6+
end
7+
8+
let :facts do
9+
{
10+
:osfamily => 'Debian',
11+
:operatingsystem => 'Debian',
12+
:operatingsystemrelease => '6.0',
13+
:kernel => 'Linux',
14+
:concat_basedir => tmpfilename('debuginfo'),
15+
:id => 'root',
16+
:path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
17+
}
18+
end
19+
20+
describe 'with parameters' do
21+
let(:params) do
22+
{
23+
:package_name => 'mypackage',
24+
:package_ensure => 'absent',
25+
}
26+
end
27+
28+
it 'should create package with correct params' do
29+
is_expected.to contain_package('postgresql-debuginfo').with({
30+
:ensure => 'absent',
31+
:name => 'mypackage',
32+
:tag => 'postgresql',
33+
})
34+
end
35+
end
36+
37+
describe 'with no parameters' do
38+
it 'should create package with postgresql tag' do
39+
is_expected.to contain_package('postgresql-debuginfo').with({
40+
:tag => 'postgresql',
41+
})
42+
end
43+
end
44+
end

0 commit comments

Comments
 (0)