X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fpostgresql%2Fmanifests%2Fglobals.pp;fp=3rdparty%2Fmodules%2Fpostgresql%2Fmanifests%2Fglobals.pp;h=36e61af489a18685726631f1951b63a2dee2d3c0;hb=a69999e580f8b3abd12446c2d6ad59e517651813;hp=0000000000000000000000000000000000000000;hpb=e7b6b352165009c385c52fcfe5a1055690dbfa4b;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/postgresql/manifests/globals.pp b/3rdparty/modules/postgresql/manifests/globals.pp new file mode 100644 index 000000000..36e61af48 --- /dev/null +++ b/3rdparty/modules/postgresql/manifests/globals.pp @@ -0,0 +1,157 @@ +# Class for setting cross-class global overrides. See README.md for more +# details. +class postgresql::globals ( + $client_package_name = undef, + $server_package_name = undef, + $contrib_package_name = undef, + $devel_package_name = undef, + $java_package_name = undef, + $docs_package_name = undef, + $perl_package_name = undef, + $plperl_package_name = undef, + $plpython_package_name = undef, + $python_package_name = undef, + $postgis_package_name = undef, + + $service_name = undef, + $service_provider = undef, + $service_status = undef, + $default_database = undef, + + $validcon_script_path = undef, + + $initdb_path = undef, + $createdb_path = undef, + $psql_path = undef, + $pg_hba_conf_path = undef, + $pg_ident_conf_path = undef, + $postgresql_conf_path = undef, + $recovery_conf_path = undef, + $default_connect_settings = {}, + + $pg_hba_conf_defaults = undef, + + $datadir = undef, + $confdir = undef, + $bindir = undef, + $xlogdir = undef, + $logdir = undef, + $log_line_prefix = undef, + + $user = undef, + $group = undef, + + $version = undef, + $postgis_version = undef, + $repo_proxy = undef, + $repo_baseurl = undef, + + $needs_initdb = undef, + + $encoding = undef, + $locale = undef, + $data_checksums = undef, + $timezone = undef, + + $manage_pg_hba_conf = undef, + $manage_pg_ident_conf = undef, + $manage_recovery_conf = undef, + + $manage_package_repo = undef, + $module_workdir = undef, +) { + # We are determining this here, because it is needed by the package repo + # class. + $default_version = $::osfamily ? { + /^(RedHat|Linux)/ => $::operatingsystem ? { + 'Fedora' => $::operatingsystemrelease ? { + /^(24|25)$/ => '9.5', + /^(22|23)$/ => '9.4', + /^(21)$/ => '9.3', + /^(18|19|20)$/ => '9.2', + /^(17)$/ => '9.1', + default => undef, + }, + 'Amazon' => '9.2', + default => $::operatingsystemrelease ? { + /^7\./ => '9.2', + /^6\./ => '8.4', + /^5\./ => '8.1', + default => undef, + }, + }, + 'Debian' => $::operatingsystem ? { + 'Debian' => $::operatingsystemrelease ? { + /^(squeeze|6\.)/ => '8.4', + /^(wheezy|7\.)/ => '9.1', + /^(jessie|8\.)/ => '9.4', + /^(stretch|9\.)/ => '9.6', + default => undef, + }, + 'Ubuntu' => $::operatingsystemrelease ? { + /^(10.04|10.10|11.04)$/ => '8.4', + /^(11.10|12.04|12.10|13.04|13.10)$/ => '9.1', + /^(14.04)$/ => '9.3', + /^(14.10|15.04|15.10)$/ => '9.4', + /^(16.04|16.10)$/ => '9.5', + default => undef, + }, + default => undef, + }, + 'Archlinux' => $::operatingsystem ? { + /Archlinux/ => '9.2', + default => '9.2', + }, + 'Gentoo' => '9.5', + 'FreeBSD' => '93', + 'OpenBSD' => $::operatingsystemrelease ? { + /5\.6/ => '9.3', + /5\.[7-9]/ => '9.4', + /6\.[0-9]/ => '9.5', + }, + 'Suse' => $::operatingsystem ? { + 'SLES' => $::operatingsystemrelease ? { + /11\.[0-4]/ => '91', + /12\.0/ => '93', + default => '94', + }, + 'OpenSuSE' => $::operatingsystemrelease ? { + default => '94', + }, + default => undef, + }, + default => undef, + } + $globals_version = pick($version, $default_version, 'unknown') + if($globals_version == 'unknown') { + fail('No preferred version defined or automatically detected.') + } + + $default_postgis_version = $globals_version ? { + '8.1' => '1.3.6', + '8.4' => '2.0', + '9.0' => '2.1', + '9.1' => '2.1', + '91' => '2.1', + '9.2' => '2.3', + '9.3' => '2.3', + '93' => '2.3', + '9.4' => '2.3', + '9.5' => '2.3', + '9.6' => '2.3', + default => undef, + } + $globals_postgis_version = $postgis_version ? { + undef => $default_postgis_version, + default => $postgis_version, + } + + # Setup of the repo only makes sense globally, so we are doing this here. + if($manage_package_repo) { + class { 'postgresql::repo': + version => $globals_version, + proxy => $repo_proxy, + baseurl => $repo_baseurl, + } + } +}