control-repo/site/profile/manifests/pe_postgresql_management.pp
Nick Walker acf1cf7ffd Add data type validation to pe_postgresql_management profile
Prior to this commit 3 of the 4 parameters were not validated.

After this commit, the parameters are correctly validated.

Due to MODULES-2960 $autovacuum_scale_factor is validated as a float
but then is converted to a string to pass it to the value attribute
of postgresql_conf.
2016-03-11 16:59:05 -08:00

44 lines
1.5 KiB
Puppet

class profile::pe_postgresql_management (
Float[0,1] $autovacuum_scale_factor = 0.01,
Boolean $manage_postgresql_service = true,
Boolean $all_in_one_pe_install = true,
Boolean $include_pe_databases_maintenance = true,
) {
$postgresql_service_resource_name = 'postgresqld'
$postgresql_service_name = 'pe-postgresql'
$notify_postgresql_service = $manage_postgresql_service ? {
true => Service[$postgresql_service_resource_name],
default => undef,
}
$notify_console_services = $all_in_one_pe_install ? {
true => Service['pe-console-services'],
default => undef,
}
if $manage_postgresql_service {
service { $postgresql_service_resource_name :
name => $postgresql_service_name,
ensure => running,
enable => true,
notify => $notify_console_services
}
}
#The value attribute of postgresql_conf requires a string despite validating a float above
#https://tickets.puppetlabs.com/browse/MODULES-2960
#http://www.postgresql.org/docs/9.4/static/runtime-config-autovacuum.html
postgresql_conf { ['autovacuum_vacuum_scale_factor', 'autovacuum_analyze_scale_factor'] :
ensure => present,
target => '/opt/puppetlabs/server/data/postgresql/9.4/data/postgresql.conf',
value => "${autovacuum_scale_factor}",
notify => $notify_postgresql_service,
}
#https://github.com/npwalker/pe_databases
if $include_pe_databases_maintenance {
include pe_databases::maintenance
}
}