Skip to content

Commit 789543f

Browse files
Add service_manage parameter
Loosely addresses MODULES-1522
1 parent 61f8655 commit 789543f

File tree

5 files changed

+45
-23
lines changed

5 files changed

+45
-23
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,9 @@ Value to pass through to the `package` resource when creating the server instanc
393393
####`plperl_package_name`
394394
This sets the default package name for the PL/Perl extension. Defaults to utilising the operating system default.
395395

396+
####`service_manage`
397+
This setting selects whether Puppet should manage the service. Defaults to `true`.
398+
396399
####`service_name`
397400
This setting can be used to override the default postgresql service name. If not specified, the module will use whatever service name is the default for your OS distro.
398401

manifests/params.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
$locale = $locale
1313
$service_ensure = 'running'
1414
$service_enable = true
15+
$service_manage = true
1516
$service_provider = $service_provider
1617
$manage_pg_hba_conf = pick($manage_pg_hba_conf, true)
1718
$manage_pg_ident_conf = pick($manage_pg_ident_conf, true)

manifests/server.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
$service_ensure = $postgresql::params::service_ensure,
1212
$service_enable = $postgresql::params::service_enable,
13+
$service_manage = $postgresql::params::service_manage,
1314
$service_name = $postgresql::params::service_name,
1415
$service_provider = $postgresql::params::service_provider,
1516
$service_status = $postgresql::params::service_status,

manifests/server/service.pp

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
class postgresql::server::service {
33
$service_ensure = $postgresql::server::service_ensure
44
$service_enable = $postgresql::server::service_enable
5+
$service_manage = $postgresql::server::service_manage
56
$service_name = $postgresql::server::service_name
67
$service_provider = $postgresql::server::service_provider
78
$service_status = $postgresql::server::service_status
@@ -11,30 +12,33 @@
1112

1213
anchor { 'postgresql::server::service::begin': }
1314

14-
service { 'postgresqld':
15-
ensure => $service_ensure,
16-
enable => $service_enable,
17-
name => $service_name,
18-
provider => $service_provider,
19-
hasstatus => true,
20-
status => $service_status,
21-
}
15+
if $service_manage {
16+
17+
service { 'postgresqld':
18+
ensure => $service_ensure,
19+
enable => $service_enable,
20+
name => $service_name,
21+
provider => $service_provider,
22+
hasstatus => true,
23+
status => $service_status,
24+
}
2225

23-
if $service_ensure == 'running' {
24-
# This blocks the class before continuing if chained correctly, making
25-
# sure the service really is 'up' before continuing.
26-
#
27-
# Without it, we may continue doing more work before the database is
28-
# prepared leading to a nasty race condition.
29-
postgresql::validate_db_connection { 'validate_service_is_running':
30-
run_as => $user,
31-
database_name => $default_database,
32-
database_port => $port,
33-
sleep => 1,
34-
tries => 60,
35-
create_db_first => false,
36-
require => Service['postgresqld'],
37-
before => Anchor['postgresql::server::service::end']
26+
if $service_ensure == 'running' {
27+
# This blocks the class before continuing if chained correctly, making
28+
# sure the service really is 'up' before continuing.
29+
#
30+
# Without it, we may continue doing more work before the database is
31+
# prepared leading to a nasty race condition.
32+
postgresql::validate_db_connection { 'validate_service_is_running':
33+
run_as => $user,
34+
database_name => $default_database,
35+
database_port => $port,
36+
sleep => 1,
37+
tries => 60,
38+
create_db_first => false,
39+
require => Service['postgresqld'],
40+
before => Anchor['postgresql::server::service::end']
41+
}
3842
}
3943
}
4044

spec/unit/classes/server_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@
3939
end
4040
end
4141

42+
describe 'service_manage => true' do
43+
let(:params) {{ :service_manage => true }}
44+
it { is_expected.to contain_service('postgresqld') }
45+
end
46+
47+
describe 'service_manage => false' do
48+
let(:params) {{ :service_manage => false }}
49+
it { is_expected.not_to contain_service('postgresqld') }
50+
it 'shouldnt validate connection' do
51+
is_expected.not_to contain_postgresql__validate_db_connection('validate_service_is_running')
52+
end
53+
end
54+
4255
describe 'package_ensure => absent' do
4356
let(:params) do
4457
{

0 commit comments

Comments
 (0)