Skip to content

Commit 317c146

Browse files
committed
Merge pull request puppetlabs#573 from mhaskel/openbsd_support
Openbsd support
2 parents 1ca8ecd + 593e953 commit 317c146

File tree

6 files changed

+53
-1
lines changed

6 files changed

+53
-1
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@ This setting can be used to override the default postgresql service name. If not
311311
####`service_provider`
312312
This setting can be used to override the default postgresql service provider. If not specified, the module will use whatever service name is the default for your OS distro.
313313

314+
####`service_reload`
315+
This setting can be used to override the default reload command for your PostgreSQL service. If not specified, the module will the default reload command for your OS distro.
316+
314317
####`service_status`
315318
This setting can be used to override the default status check command for your PostgreSQL service. If not specified, the module will use whatever service name is the default for your OS distro.
316319

manifests/globals.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
default => '9.2',
8686
},
8787
'FreeBSD' => '93',
88+
'OpenBSD' => '9.3',
8889
'Suse' => $::operatingsystem ? {
8990
'SLES' => '91',
9091
default => undef,

manifests/params.pp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
$psql_path = pick($psql_path, "${bindir}/psql")
6161

6262
$service_status = $service_status
63+
$service_reload = "service ${service_name} reload"
6364
$perl_package_name = pick($perl_package_name, 'perl-DBD-Pg')
6465
$python_package_name = pick($python_package_name, 'python-psycopg2')
6566

@@ -98,6 +99,7 @@
9899
$psql_path = pick($psql_path, "${bindir}/psql")
99100

100101
$service_status = $service_status
102+
$service_reload = "service ${service_name} reload"
101103
$python_package_name = pick($python_package_name, 'python-psycopg2')
102104
# Archlinux does not have a perl::DBD::Pg package
103105
$perl_package_name = pick($perl_package_name, 'undef')
@@ -141,6 +143,7 @@
141143
$datadir = pick($datadir, "/var/lib/postgresql/${version}/main")
142144
$confdir = pick($confdir, "/etc/postgresql/${version}/main")
143145
$service_status = pick($service_status, "/etc/init.d/${service_name} status | /bin/egrep -q 'Running clusters: .+|online'")
146+
$service_reload = "service ${service_name} reload"
144147
$psql_path = pick($psql_path, '/usr/bin/psql')
145148
}
146149

@@ -163,6 +166,31 @@
163166
$datadir = pick($datadir, '/usr/local/pgsql/data')
164167
$confdir = pick($confdir, $datadir)
165168
$service_status = pick($service_status, "/usr/local/etc/rc.d/${service_name} onestatus")
169+
$service_reload = "service ${service_name} reload"
170+
$psql_path = pick($psql_path, "${bindir}/psql")
171+
172+
$needs_initdb = pick($needs_initdb, true)
173+
}
174+
175+
'OpenBSD': {
176+
$user = pick($user, '_postgresql')
177+
$group = pick($group, '_postgresql')
178+
179+
$client_package_name = pick($client_package_name, 'postgresql-client')
180+
$server_package_name = pick($server_package_name, 'postgresql-server')
181+
$contrib_package_name = pick($contrib_package_name, 'postgresql-contrib')
182+
$devel_package_name = pick($devel_package_name, 'postgresql-client')
183+
$java_package_name = pick($java_package_name, 'postgresql-jdbc')
184+
$perl_package_name = pick($perl_package_name, 'databases/p5-DBD-Pg')
185+
$plperl_package_name = undef
186+
$python_package_name = pick($python_package_name, 'py-psycopg2')
187+
188+
$service_name = pick($service_name, 'postgresql')
189+
$bindir = pick($bindir, '/usr/local/bin')
190+
$datadir = pick($datadir, '/var/postgresql/data')
191+
$confdir = pick($confdir, $datadir)
192+
$service_status = pick($service_status, "/etc/rc.d/${service_name} check")
193+
$service_reload = "/etc/rc.d/${service_name} reload"
166194
$psql_path = pick($psql_path, "${bindir}/psql")
167195

168196
$needs_initdb = pick($needs_initdb, true)
@@ -187,6 +215,7 @@
187215
$datadir = pick($datadir, '/var/lib/pgsql/data')
188216
$confdir = pick($confdir, $datadir)
189217
$service_status = pick($service_status, "/etc/init.d/${service_name} status")
218+
$service_reload = "/etc/init.d/${service_name} reload"
190219
$psql_path = pick($psql_path, "${bindir}/psql")
191220

192221
$needs_initdb = pick($needs_initdb, true)

manifests/server.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
$service_manage = $postgresql::params::service_manage,
1414
$service_name = $postgresql::params::service_name,
1515
$service_provider = $postgresql::params::service_provider,
16+
$service_reload = $postgresql::params::service_reload,
1617
$service_status = $postgresql::params::service_status,
1718
$default_database = $postgresql::params::default_database,
1819

manifests/server/reload.pp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
class postgresql::server::reload {
33
$service_name = $postgresql::server::service_name
44
$service_status = $postgresql::server::service_status
5+
$service_reload = $postgresql::server::service_reload
56

67
exec { 'postgresql_reload':
78
path => '/usr/bin:/usr/sbin:/bin:/sbin',
8-
command => "service ${service_name} reload",
9+
command => $service_reload,
910
onlyif => $service_status,
1011
refreshonly => true,
1112
require => Class['postgresql::server::service'],

spec/unit/classes/server_spec.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
describe 'with no parameters' do
1717
it { is_expected.to contain_class("postgresql::params") }
1818
it { is_expected.to contain_class("postgresql::server") }
19+
it { is_expected.to contain_exec('postgresql_reload').with({
20+
'command' => 'service postgresql reload',
21+
})
22+
}
1923
it 'should validate connection' do
2024
is_expected.to contain_postgresql__validate_db_connection('validate_service_is_running')
2125
end
@@ -39,6 +43,19 @@
3943
end
4044
end
4145

46+
describe 'service_reload => /bin/true' do
47+
let(:params) {{ :service_reload => '/bin/true' }}
48+
it { is_expected.to contain_class("postgresql::params") }
49+
it { is_expected.to contain_class("postgresql::server") }
50+
it { is_expected.to contain_exec('postgresql_reload').with({
51+
'command' => '/bin/true',
52+
})
53+
}
54+
it 'should validate connection' do
55+
is_expected.to contain_postgresql__validate_db_connection('validate_service_is_running')
56+
end
57+
end
58+
4259
describe 'service_manage => true' do
4360
let(:params) {{ :service_manage => true }}
4461
it { is_expected.to contain_service('postgresqld') }

0 commit comments

Comments
 (0)