module-postgresql/manifests/init.pp
Ken Barber 501289394a Cleaned up and added unit tests
Signed-off-by: Ken Barber <ken@bob.sh>
2013-02-25 17:50:53 +00:00

138 lines
5.3 KiB
Puppet

# == Class: postgresql
#
# This is a base class that can be used to modify catalog-wide settings relating
# to the various types in class contained in the postgresql module.
#
# If you don't declare this class in your catalog, sensible defaults will
# be used. However, if you choose to declare it, it needs to appear *before*
# any other types or classes from the postgresql module.
#
# For examples, see the files in the `tests` directory; in particular,
# `/server-yum-postgresql-org.pp`.
#
# === Parameters
#
# [*version*]
# The postgresql version to install. If not specified, the
# module will use whatever version is the default for your
# OS distro.
# [*manage_package_repo*]
# This determines whether or not the module should
# attempt to manage the postgres package repository for your
# distro. Defaults to `false`, but if set to `true`, it can
# be used to set up the official postgres yum/apt package
# repositories for you.
# [*package_source*]
# This setting is only used if `manage_package_repo` is
# set to `true`. It determines which package repository should
# be used to install the postgres packages. Currently supported
# values include `yum.postgresql.org`.
# [*locale*]
# This setting defines the default locale for initdb and createdb
# commands. This default to 'undef' which is effectively 'C'.
# [*charset*]
# Sets the default charset to be used for initdb and createdb.
# Defaults to 'UTF8'.
# [*datadir*]
# This setting can be used to override the default postgresql
# data directory for the target platform. If not specified, the
# module will use whatever directory is the default for your
# OS distro.
# [*confdir*]
# This setting can be used to override the default postgresql
# configuration directory for the target platform. If not
# specified, the module will use whatever directory is the
# default for your OS distro.
# [*bindir*]
# This setting can be used to override the default postgresql
# binaries directory for the target platform. If not
# specified, the module will use whatever directory is the
# default for your OS distro.
# [*client_package_name*]
# This setting can be used to override the default
# postgresql client package name. If not specified, the module
# will use whatever package name is the default for your
# OS distro.
# [*server_package_name*]
# This setting can be used to override the default
# postgresql server package name. If not specified, the module
# will use whatever package name is the default for your
# OS distro.
# [*devel_package_name*]
# This setting can be used to override the default
# postgresql devel package name. If not specified, the module
# will use whatever package name is the default for your
# OS distro.
# [*java_package_name*]
# This setting can be used to override the default
# postgresql java package name. If not specified, the module
# will use whatever package name is the default for your
# OS distro.
# [*service_name*]
# 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.
# [*user*]
# This setting can be used to override the default
# postgresql super user and owner of postgresql related files
# in the file system. If not specified, the module will use
# the user name 'postgres'.
# [*group*]
# This setting can be used to override the default
# postgresql user group to be used for related files
# in the file system. If not specified, the module will use
# the group name 'postgres'.
# [*run_initdb*]
# This setting can be used to explicitly call the initdb
# operation after server package is installed and before
# the postgresql service is started. If not specified, the
# module will decide whether to call initdb or not depending
# on your OS distro.
#
# === Examples
#
# class { 'postgresql':
# version => '9.2',
# manage_package_repo => true,
# }
#
#
class postgresql (
$version = $::postgres_default_version,
$manage_package_repo = false,
$package_source = undef,
$locale = undef,
$charset = 'UTF8',
$datadir = undef,
$confdir = undef,
$bindir = undef,
$client_package_name = undef,
$server_package_name = undef,
$devel_package_name = undef,
$java_package_name = undef,
$service_name = undef,
$user = undef,
$group = undef,
$run_initdb = undef
) {
class { 'postgresql::params':
version => $version,
manage_package_repo => $manage_package_repo,
package_source => $package_source,
locale => $locale,
charset => $charset,
custom_datadir => $datadir,
custom_confdir => $confdir,
custom_bindir => $bindir,
custom_client_package_name => $client_package_name,
custom_server_package_name => $server_package_name,
custom_devel_package_name => $devel_package_name,
custom_java_package_name => $java_package_name,
custom_service_name => $service_name,
custom_user => $user,
custom_group => $group,
run_initdb => $run_initdb,
}
}