newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / manifests / server.pp
index 8c2ae1f..7509ec9 100644 (file)
@@ -1,93 +1,84 @@
-# Class: postgresql::server
-#
-# == Class: postgresql::server
-# Manages the installation of the postgresql server.  manages the package and
-# service.
-#
-# === Parameters:
-# [*package_name*] - name of package
-# [*service_name*] - name of service
-#
-# Configuration:
-#   Advanced configuration setting parameters can be placed into 'postgresql_puppet_extras.conf' (located in the same
-#   folder as 'postgresql.conf'). You can manage that file as a normal puppet file resource, or however you see fit;
-#   which gives you complete control over the settings. Any value you specify in that file will override any existing
-#   value set in the templated version.
-#
-# Actions:
-#
-# Requires:
-#
-# Sample Usage:
-#
+# This installs a PostgreSQL server. See README.md for more details.
 class postgresql::server (
-  $ensure           = 'present',
-  $package_name     = $postgresql::params::server_package_name,
-  $package_ensure   = 'present',
-  $service_name     = $postgresql::params::service_name,
-  $service_provider = $postgresql::params::service_provider,
-  $service_status   = $postgresql::params::service_status,
-  $config_hash      = {},
-  $datadir          = $postgresql::params::datadir
-) inherits postgresql::params {
+  $postgres_password          = undef,
 
-  if ($ensure == 'absent') {
-    service { 'postgresqld':
-      ensure    => stopped,
-      name      => $service_name,
-      enable    => false,
-      provider  => $service_provider,
-      hasstatus => true,
-      status    => $service_status,
-    }->
-    package { 'postgresql-server':
-      ensure  => purged,
-      name    => $package_name,
-      tag     => 'postgresql',
-    }->
-    file { $datadir:
-      ensure => absent,
-      recurse => true,
-      force => true,
-    }
-  } else {
-    package { 'postgresql-server':
-      ensure  => $package_ensure,
-      name    => $package_name,
-      tag     => 'postgresql',
-    }
+  $package_name               = $postgresql::params::server_package_name,
+  $package_ensure             = $postgresql::params::package_ensure,
+
+  $plperl_package_name        = $postgresql::params::plperl_package_name,
+  $plpython_package_name      = $postgresql::params::plpython_package_name,
+
+  $service_ensure             = $postgresql::params::service_ensure,
+  $service_enable             = $postgresql::params::service_enable,
+  $service_manage             = $postgresql::params::service_manage,
+  $service_name               = $postgresql::params::service_name,
+  $service_restart_on_change  = $postgresql::params::service_restart_on_change,
+  $service_provider           = $postgresql::params::service_provider,
+  $service_reload             = $postgresql::params::service_reload,
+  $service_status             = $postgresql::params::service_status,
+  $default_database           = $postgresql::params::default_database,
+  $default_connect_settings   = $postgresql::globals::default_connect_settings,
+  $listen_addresses           = $postgresql::params::listen_addresses,
+  $port                       = $postgresql::params::port,
+  $ip_mask_deny_postgres_user = $postgresql::params::ip_mask_deny_postgres_user,
+  $ip_mask_allow_all_users    = $postgresql::params::ip_mask_allow_all_users,
+  $ipv4acls                   = $postgresql::params::ipv4acls,
+  $ipv6acls                   = $postgresql::params::ipv6acls,
+
+  $initdb_path                = $postgresql::params::initdb_path,
+  $createdb_path              = $postgresql::params::createdb_path,
+  $psql_path                  = $postgresql::params::psql_path,
+  $pg_hba_conf_path           = $postgresql::params::pg_hba_conf_path,
+  $pg_ident_conf_path         = $postgresql::params::pg_ident_conf_path,
+  $postgresql_conf_path       = $postgresql::params::postgresql_conf_path,
+  $recovery_conf_path         = $postgresql::params::recovery_conf_path,
+
+  $datadir                    = $postgresql::params::datadir,
+  $xlogdir                    = $postgresql::params::xlogdir,
+  $logdir                     = $postgresql::params::logdir,
 
-    $config_class = {
-      'postgresql::config' => $config_hash,
-    }
+  $log_line_prefix            = $postgresql::params::log_line_prefix,
 
-    create_resources( 'class', $config_class )
+  $pg_hba_conf_defaults       = $postgresql::params::pg_hba_conf_defaults,
 
-    service { 'postgresqld':
-      ensure    => running,
-      name      => $service_name,
-      enable    => true,
-      require   => Package['postgresql-server'],
-      provider  => $service_provider,
-      hasstatus => true,
-      status    => $service_status,
-    }
+  $user                       = $postgresql::params::user,
+  $group                      = $postgresql::params::group,
 
-    if ($postgresql::params::needs_initdb) {
-      include postgresql::initdb
+  $needs_initdb               = $postgresql::params::needs_initdb,
 
-      Package['postgresql-server'] -> Class['postgresql::initdb'] -> Class['postgresql::config'] -> Service['postgresqld']
-    }
-    else  {
-      Package['postgresql-server'] -> Class['postgresql::config'] -> Service['postgresqld']
-    }
+  $encoding                   = $postgresql::params::encoding,
+  $locale                     = $postgresql::params::locale,
+  $data_checksums             = $postgresql::params::data_checksums,
+  $timezone                   = $postgresql::params::timezone,
 
-    exec { 'reload_postgresql':
-      path        => '/usr/bin:/usr/sbin:/bin:/sbin',
-      command     => "service ${service_name} reload",
-      onlyif      => $service_status,
-      refreshonly => true,
-    }
+  $manage_pg_hba_conf         = $postgresql::params::manage_pg_hba_conf,
+  $manage_pg_ident_conf       = $postgresql::params::manage_pg_ident_conf,
+  $manage_recovery_conf       = $postgresql::params::manage_recovery_conf,
+  $module_workdir             = $postgresql::params::module_workdir,
+  #Deprecated
+  $version                    = undef,
+) inherits postgresql::params {
+  $pg = 'postgresql::server'
+
+  if $version != undef {
+    warning('Passing "version" to postgresql::server is deprecated; please use postgresql::globals instead.')
+    $_version = $version
+  } else {
+    $_version = $postgresql::params::version
   }
 
+  if $createdb_path != undef{
+    warning('Passing "createdb_path" to postgresql::server is deprecated, it can be removed safely for the same behaviour')
+  }
+
+  # Reload has its own ordering, specified by other defines
+  class { "${pg}::reload": require => Class["${pg}::install"] }
+
+  anchor { "${pg}::start": }
+  -> class { "${pg}::install": }
+  -> class { "${pg}::initdb": }
+  -> class { "${pg}::config": }
+  -> class { "${pg}::service": }
+  -> class { "${pg}::passwd": }
+  -> anchor { "${pg}::end": }
 }