8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'manifests/server/config_entry.pp', line 8
define postgresql::server::config_entry (
Enum['present', 'absent'] $ensure = 'present',
String[1] $key = $name,
Optional[Variant[String[1], Numeric, Array[String[1]]]] $value = undef,
Variant[Boolean, String[1]] $path = false
) {
$postgresql_conf_path = $postgresql::server::postgresql_conf_path
$target = $path ? {
false => $postgresql_conf_path,
default => $path,
}
# Those are the variables that are marked as "(change requires restart)"
# on postgresql.conf. Items are ordered as on postgresql.conf.
#
# XXX: This resource supports setting other variables without knowing
# their names. Do not add them here.
$requires_restart_until = {
'data_directory' => undef,
'hba_file' => undef,
'ident_file' => undef,
'external_pid_file' => undef,
'listen_addresses' => undef,
'port' => undef,
'max_connections' => undef,
'superuser_reserved_connections' => undef,
'unix_socket_directory' => '9.3', # Turned into "unix_socket_directories"
'unix_socket_directories' => undef,
'unix_socket_group' => undef,
'unix_socket_permissions' => undef,
'bonjour' => undef,
'bonjour_name' => undef,
'ssl' => '10',
'ssl_ciphers' => '10',
'ssl_prefer_server_ciphers' => '10', # New on 9.4
'ssl_ecdh_curve' => '10', # New on 9.4
'ssl_cert_file' => '10', # New on 9.2
'ssl_key_file' => '10', # New on 9.2
'ssl_ca_file' => '10', # New on 9.2
'ssl_crl_file' => '10', # New on 9.2
'shared_buffers' => undef,
'huge_pages' => undef, # New on 9.4
'max_prepared_transactions' => undef,
'max_files_per_process' => undef,
'shared_preload_libraries' => undef,
'max_worker_processes' => undef, # New on 9.4
'old_snapshot_threshold' => undef, # New on 9.6
'wal_level' => undef,
'wal_log_hints' => undef, # New on 9.4
'wal_buffers' => undef,
'archive_mode' => undef,
'max_wal_senders' => undef,
'max_replication_slots' => undef, # New on 9.4
'track_commit_timestamp' => undef, # New on 9.5
'hot_standby' => undef,
'logging_collector' => undef,
'cluster_name' => undef, # New on 9.5
'silent_mode' => '9.2', # Removed
'track_activity_query_size' => undef,
'autovacuum_max_workers' => undef,
'autovacuum_freeze_max_age' => undef,
'autovacuum_multixact_freeze_max_age' => undef, # New on 9.5
'max_locks_per_transaction' => undef,
'max_pred_locks_per_transaction' => undef,
}
if ! ($key in $requires_restart_until and (
! $requires_restart_until[$key] or
versioncmp($postgresql::server::_version, $requires_restart_until[$key]) < 0
)) {
Postgresql_conf {
notify => Class['postgresql::server::reload'],
}
} elsif $postgresql::server::service_restart_on_change {
Postgresql_conf {
notify => Class['postgresql::server::service'],
}
} else {
Postgresql_conf {
before => Class['postgresql::server::service'],
}
}
postgresql_conf { $name:
ensure => $ensure,
target => $target,
name => $key,
value => $value,
require => Class['postgresql::server::initdb'],
}
}
|