Skip to content

Commit dd190cd

Browse files
authored
Merge pull request #1309 from carlosduelo/postgresql-contrib-is-virtual-package-some-dists
debian package postgresql-contrib virtual package
2 parents 16166d3 + 6d7ca60 commit dd190cd

File tree

3 files changed

+39
-26
lines changed

3 files changed

+39
-26
lines changed

manifests/params.pp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,6 @@
135135
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
136136
# Archlinux doesn't have develop packages
137137
$devel_package_name = pick($devel_package_name, 'postgresql-devel')
138-
# Archlinux does have postgresql-contrib but it isn't maintained
139-
$contrib_package_name = pick($contrib_package_name,'undef')
140138
# Archlinux postgresql package provides plperl
141139
$plperl_package_name = pick($plperl_package_name, 'undef')
142140
$plpython_package_name = pick($plpython_package_name, 'undef')
@@ -163,7 +161,6 @@
163161

164162
$client_package_name = pick($client_package_name, "postgresql-client-${version}")
165163
$server_package_name = pick($server_package_name, "postgresql-${version}")
166-
$contrib_package_name = pick($contrib_package_name, "postgresql-contrib-${version}")
167164
if $postgis_version and versioncmp($postgis_version, '2') < 0 {
168165
$postgis_package_name = pick($postgis_package_name, "postgresql-${version}-postgis")
169166
} elsif $postgis_version and versioncmp($postgis_version, '3') >= 0 {
@@ -203,7 +200,6 @@
203200

204201
$client_package_name = pick($client_package_name, 'UNSET')
205202
$server_package_name = pick($server_package_name, 'postgresql')
206-
$contrib_package_name = pick_default($contrib_package_name, undef)
207203
$devel_package_name = pick_default($devel_package_name, undef)
208204
$java_package_name = pick($java_package_name, 'jdbc-postgresql')
209205
$perl_package_name = pick($perl_package_name, 'DBD-Pg')

manifests/server/contrib.pp

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,20 @@
55
# @param package_ensure
66
# Ensure the contrib package is installed.
77
class postgresql::server::contrib (
8-
String $package_name = $postgresql::params::contrib_package_name,
9-
String[1] $package_ensure = 'present'
8+
Optional[String[1]] $package_name = $postgresql::params::contrib_package_name,
9+
String[1] $package_ensure = 'present'
1010
) inherits postgresql::params {
11-
if $facts['os']['family'] == 'Gentoo' {
12-
fail('osfamily Gentoo does not have a separate "contrib" package, postgresql::server::contrib is not supported.')
13-
}
11+
if $package_name {
12+
package { 'postgresql-contrib':
13+
ensure => $package_ensure,
14+
name => $package_name,
15+
tag => 'puppetlabs-postgresql',
16+
}
1417

15-
package { 'postgresql-contrib':
16-
ensure => $package_ensure,
17-
name => $package_name,
18-
tag => 'puppetlabs-postgresql',
18+
anchor { 'postgresql::server::contrib::start': }
19+
-> Class['postgresql::server::install']
20+
-> Package['postgresql-contrib']
21+
-> Class['postgresql::server::service']
22+
anchor { 'postgresql::server::contrib::end': }
1923
}
20-
21-
anchor { 'postgresql::server::contrib::start': }
22-
-> Class['postgresql::server::install']
23-
-> Package['postgresql-contrib']
24-
-> Class['postgresql::server::service']
25-
anchor { 'postgresql::server::contrib::end': }
2624
}

spec/unit/classes/server/contrib_spec.rb

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
let :facts do
1111
{
1212
os: {
13-
family: 'Debian',
14-
name: 'Debian',
15-
release: { 'full' => '8.0', 'major' => '8' },
13+
family: 'RedHat',
14+
name: 'RedHat',
15+
release: { 'major' => '8' },
16+
selinux: {
17+
enabled: false,
18+
},
1619
},
1720
kernel: 'Linux',
1821
id: 'root',
@@ -51,10 +54,26 @@
5154
}
5255
end
5356

54-
it 'fails to compile' do
55-
expect {
56-
is_expected.to compile
57-
}.to raise_error(%r{is not supported})
57+
it 'postgresql-contrib should not be installed' do
58+
is_expected.to compile
59+
is_expected.not_to contain_package('postgresql-contrib')
60+
end
61+
end
62+
63+
describe 'on Debian' do
64+
let :facts do
65+
{
66+
os: {
67+
family: 'Debian',
68+
name: 'Debian',
69+
release: { 'full' => '8.0', 'major' => '8' },
70+
},
71+
}
72+
end
73+
74+
it 'postgresql-contrib should not be installed' do
75+
is_expected.to compile
76+
is_expected.not_to contain_package('postgresql-contrib')
5877
end
5978
end
6079
end

0 commit comments

Comments
 (0)