diff --git a/.puppet-lint.rc b/.puppet-lint.rc index db7c27173f..f01626d456 100644 --- a/.puppet-lint.rc +++ b/.puppet-lint.rc @@ -1,5 +1,3 @@ --relative ---no-parameter_types-check ---no-parameter_documentation-check --no-anchor_resource-check --no-params_empty_string_assignment-check diff --git a/.sync.yml b/.sync.yml index d1c6127051..0f35b71e42 100644 --- a/.sync.yml +++ b/.sync.yml @@ -63,7 +63,5 @@ spec/spec_helper.rb: delete: true Rakefile: extra_disabled_lint_checks: - - parameter_types - - parameter_documentation - anchor_resource - params_empty_string_assignment diff --git a/Rakefile b/Rakefile index 663350a085..c4c0a26650 100644 --- a/Rakefile +++ b/Rakefile @@ -42,12 +42,9 @@ def changelog_future_release end PuppetLint.configuration.send('disable_relative') -PuppetLint.configuration.send('disable_parameter_types') -PuppetLint.configuration.send('disable_parameter_documentation') PuppetLint.configuration.send('disable_anchor_resource') PuppetLint.configuration.send('disable_params_empty_string_assignment') - if Bundler.rubygems.find_name('github_changelog_generator').any? GitHubChangelogGenerator::RakeTask.new :changelog do |config| raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil? diff --git a/manifests/backup/pg_dump.pp b/manifests/backup/pg_dump.pp index 98ce2bb299..eb4e3b4975 100644 --- a/manifests/backup/pg_dump.pp +++ b/manifests/backup/pg_dump.pp @@ -27,9 +27,9 @@ # Manage creation of the backup user. # @param optional_args # Specifies an array of optional arguments which should be passed through to the backup tool. These options are not validated, unsupported options may break the backup. -# @param postscript +# @param post_script # One or more scripts that are executed when the backup is finished. This could be used to sync the backup to a central store. -# @param prescript +# @param pre_script # One or more scripts that are executed before the backup begins. # @param rotate # Backup rotation interval in 24 hour periods. @@ -41,30 +41,30 @@ # Weekdays on which the backup job should run. Defaults to `*`. This parameter is passed directly to the cron resource. # class postgresql::backup::pg_dump ( - String[1] $dir, - Boolean $compress = true, - Array $databases = [], - Boolean $delete_before_dump = false, - String[1] $dir_group = '0', - String[1] $dir_mode = '0700', - String[1] $dir_owner = 'root', - Enum['present','absent'] $ensure = 'present', - Enum['plain','custom','directory','tar'] $format = 'plain', - Boolean $install_cron = true, - Boolean $manage_user = false, - Array $optional_args = [], - Stdlib::Absolutepath $pgpass_path = '/root/.pgpass', - Integer $rotate = 30, - Stdlib::Absolutepath $script_path = '/usr/local/sbin/pg_dump.sh', - Stdlib::Absolutepath $success_file_path = '/tmp/pgbackup_success', - String[1] $template = 'postgresql/pg_dump.sh.epp', - Array $time = ['23', '5'], - String[1] $weekday = '*', - Optional[Variant[String, Sensitive[String]]] $db_password = undef, - Optional[String[1]] $db_user = undef, - Optional[String[1]] $package_name = undef, - Optional[String[1]] $post_script = undef, - Optional[String[1]] $pre_script = undef, + String[1] $dir, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $ensure = 'present', + Boolean $compress = true, + Array $databases = [], + Boolean $delete_before_dump = false, + String[1] $dir_group = '0', + String[1] $dir_mode = '0700', + String[1] $dir_owner = 'root', + Enum['plain','custom','directory','tar'] $format = 'plain', + Boolean $install_cron = true, + Boolean $manage_user = false, + Array $optional_args = [], + Stdlib::Absolutepath $pgpass_path = '/root/.pgpass', + Integer $rotate = 30, + Stdlib::Absolutepath $script_path = '/usr/local/sbin/pg_dump.sh', + Stdlib::Absolutepath $success_file_path = '/tmp/pgbackup_success', + String[1] $template = 'postgresql/pg_dump.sh.epp', + Array $time = ['23', '5'], + String[1] $weekday = '*', + Optional[Variant[String, Sensitive[String]]] $db_password = undef, + Optional[String[1]] $db_user = undef, + Optional[String[1]] $package_name = undef, + Optional[String[1]] $post_script = undef, + Optional[String[1]] $pre_script = undef, ) { # Install required packages if $package_name { diff --git a/manifests/client.pp b/manifests/client.pp index 3cb26ce81a..0b15f91fb5 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -12,10 +12,10 @@ # @param package_ensure # Ensure the client package is installed class postgresql::client ( - Enum['file', 'absent'] $file_ensure = 'file', - Stdlib::Absolutepath $validcon_script_path = $postgresql::params::validcon_script_path, - String[1] $package_name = $postgresql::params::client_package_name, - String[1] $package_ensure = 'present' + Enum['file', 'absent'] $file_ensure = 'file', + Stdlib::Absolutepath $validcon_script_path = $postgresql::params::validcon_script_path, + String[1] $package_name = $postgresql::params::client_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { if $package_name != 'UNSET' { package { 'postgresql-client': diff --git a/manifests/dnfmodule.pp b/manifests/dnfmodule.pp index a1cb4b9a1f..a320ba0d42 100644 --- a/manifests/dnfmodule.pp +++ b/manifests/dnfmodule.pp @@ -6,7 +6,7 @@ # # @api private class postgresql::dnfmodule ( - String[1] $ensure = 'installed', + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $ensure = 'installed', String[1] $module = 'postgresql', ) { package { 'postgresql dnf module': diff --git a/manifests/globals.pp b/manifests/globals.pp index bbf8667145..c19268f371 100644 --- a/manifests/globals.pp +++ b/manifests/globals.pp @@ -81,6 +81,7 @@ # Whether to manage the postgresql conf file permissions. This means owner, # group and mode. Contents are not managed but should be managed through # postgresql::server::config_entry. +# @param manage_selinux Allows Puppet to manage the appropriate configuration file for selinux. # # @param manage_datadir Set to false if you have file{ $datadir: } already defined # @param manage_logdir Set to false if you have file{ $logdir: } already defined @@ -95,72 +96,72 @@ # # 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, + Optional[String[1]] $client_package_name = undef, + Optional[String[1]] $server_package_name = undef, + Optional[String[1]] $contrib_package_name = undef, + Optional[String[1]] $devel_package_name = undef, + Optional[String[1]] $java_package_name = undef, + Optional[String[1]] $docs_package_name = undef, + Optional[String[1]] $perl_package_name = undef, + Optional[String[1]] $plperl_package_name = undef, + Optional[String[1]] $plpython_package_name = undef, + Optional[String[1]] $python_package_name = undef, + Optional[String[1]] $postgis_package_name = undef, - $service_name = undef, - $service_provider = undef, - $service_status = undef, - $default_database = undef, + Optional[String[1]] $service_name = undef, + Optional[String[1]] $service_provider = undef, + Optional[String[1]] $service_status = undef, + Optional[String[1]] $default_database = undef, - $validcon_script_path = undef, + Optional[String[1]] $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, - Optional[Stdlib::Filemode] $postgresql_conf_mode = undef, - $recovery_conf_path = undef, - $default_connect_settings = {}, + Optional[Variant[String[1], Stdlib::Absolutepath]] $initdb_path = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $createdb_path = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $psql_path = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $pg_hba_conf_path = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $pg_ident_conf_path = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $postgresql_conf_path = undef, + Optional[Stdlib::Filemode] $postgresql_conf_mode = undef, + Optional[Variant[String[1], Stdlib::Absolutepath]] $recovery_conf_path = undef, + Hash $default_connect_settings = {}, - $pg_hba_conf_defaults = undef, + Optional[Boolean] $pg_hba_conf_defaults = undef, - $datadir = undef, - $confdir = undef, - $bindir = undef, - $xlogdir = undef, - $logdir = undef, - $log_line_prefix = undef, - $manage_datadir = undef, - $manage_logdir = undef, - $manage_xlogdir = undef, + Optional[String[1]] $datadir = undef, + Optional[String[1]] $confdir = undef, + Optional[String[1]] $bindir = undef, + Optional[String[1]] $xlogdir = undef, + Optional[String[1]] $logdir = undef, + Optional[String[1]] $log_line_prefix = undef, + Optional[Boolean] $manage_datadir = undef, + Optional[Boolean] $manage_logdir = undef, + Optional[Boolean] $manage_xlogdir = undef, - $user = undef, - $group = undef, + Optional[String[1]] $user = undef, + Optional[String[1]] $group = undef, - $version = undef, - $postgis_version = undef, - $repo_proxy = undef, - $repo_baseurl = undef, - $yum_repo_commonurl = undef, + Optional[String[1]] $version = undef, + Optional[String[1]] $postgis_version = undef, + Optional[String[1]] $repo_proxy = undef, + Optional[String[1]] $repo_baseurl = undef, + Optional[String[1]] $yum_repo_commonurl = undef, - $needs_initdb = undef, + Optional[Boolean] $needs_initdb = undef, - $encoding = undef, - $locale = undef, - $data_checksums = undef, - $timezone = undef, + Optional[String[1]] $encoding = undef, + Optional[String[1]] $locale = undef, + Optional[String[1]] $data_checksums = undef, + Optional[String[1]] $timezone = undef, - $manage_pg_hba_conf = undef, - $manage_pg_ident_conf = undef, - $manage_recovery_conf = undef, - $manage_postgresql_conf_perms = undef, - $manage_selinux = undef, + Optional[Boolean] $manage_pg_hba_conf = undef, + Optional[Boolean] $manage_pg_ident_conf = undef, + Optional[Boolean] $manage_recovery_conf = undef, + Optional[Boolean] $manage_postgresql_conf_perms = undef, + Optional[Boolean] $manage_selinux = undef, - $manage_package_repo = undef, + Optional[Boolean] $manage_package_repo = undef, Boolean $manage_dnf_module = false, - $module_workdir = undef, + Optional[String[1]] $module_workdir = undef, ) { # We are determining this here, because it is needed by the package repo # class. diff --git a/manifests/lib/devel.pp b/manifests/lib/devel.pp index 0efa6f6d21..70ab31da97 100644 --- a/manifests/lib/devel.pp +++ b/manifests/lib/devel.pp @@ -9,9 +9,9 @@ # # class postgresql::lib::devel ( - String $package_name = $postgresql::params::devel_package_name, - String[1] $package_ensure = 'present', - Boolean $link_pg_config = $postgresql::params::link_pg_config + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', + String $package_name = $postgresql::params::devel_package_name, + Boolean $link_pg_config = $postgresql::params::link_pg_config, ) inherits postgresql::params { if $facts['os']['family'] == 'Gentoo' { fail('osfamily Gentoo does not have a separate "devel" package, postgresql::lib::devel is not supported') diff --git a/manifests/lib/docs.pp b/manifests/lib/docs.pp index 0eba0607f4..0f132cd98a 100644 --- a/manifests/lib/docs.pp +++ b/manifests/lib/docs.pp @@ -10,8 +10,8 @@ # # class postgresql::lib::docs ( - String $package_name = $postgresql::params::docs_package_name, - String[1] $package_ensure = 'present', + String $package_name = $postgresql::params::docs_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { package { 'postgresql-docs': ensure => $package_ensure, diff --git a/manifests/lib/java.pp b/manifests/lib/java.pp index ac1ff28095..aa273c6bad 100644 --- a/manifests/lib/java.pp +++ b/manifests/lib/java.pp @@ -9,8 +9,8 @@ # Specifies whether the package is present. # class postgresql::lib::java ( - String $package_name = $postgresql::params::java_package_name, - String[1] $package_ensure = 'present' + String $package_name = $postgresql::params::java_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { package { 'postgresql-jdbc': ensure => $package_ensure, diff --git a/manifests/lib/perl.pp b/manifests/lib/perl.pp index 2a9b714391..72ece8d15f 100644 --- a/manifests/lib/perl.pp +++ b/manifests/lib/perl.pp @@ -6,8 +6,8 @@ # Ensure the perl libs for postgresql are installed. # class postgresql::lib::perl ( - String $package_name = $postgresql::params::perl_package_name, - String[1] $package_ensure = 'present' + String $package_name = $postgresql::params::perl_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { package { 'perl-DBD-Pg': ensure => $package_ensure, diff --git a/manifests/lib/python.pp b/manifests/lib/python.pp index 3587e8cdeb..bbccdc3a50 100644 --- a/manifests/lib/python.pp +++ b/manifests/lib/python.pp @@ -6,8 +6,8 @@ # Ensure the python libs for postgresql are installed. # class postgresql::lib::python ( - String[1] $package_name = $postgresql::params::python_package_name, - String[1] $package_ensure = 'present' + String[1] $package_name = $postgresql::params::python_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { package { 'python-psycopg2': ensure => $package_ensure, diff --git a/manifests/repo.pp b/manifests/repo.pp index a7803d9687..e67236b1bb 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -1,9 +1,9 @@ # @api private class postgresql::repo ( - $version = undef, - $proxy = undef, - $baseurl = undef, - $commonurl = undef, + Optional[String[1]] $version = undef, + Optional[String[1]] $proxy = undef, + Optional[String[1]] $baseurl = undef, + Optional[String[1]] $commonurl = undef, ) { case $facts['os']['family'] { 'RedHat', 'Linux': { diff --git a/manifests/server.pp b/manifests/server.pp index 3271d24304..c2a0f0d06e 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -68,11 +68,13 @@ # Whether to manage the postgresql conf file permissions. This means owner, # group and mode. Contents are not managed but should be managed through # postgresql::server::config_entry. +# @param manage_selinux Specifies whether or not manage the conf file for selinux. # @param module_workdir Working directory for the PostgreSQL module # # @param manage_datadir Set to false if you have file{ $datadir: } already defined # @param manage_logdir Set to false if you have file{ $logdir: } already defined # @param manage_xlogdir Set to false if you have file{ $xlogdir: } already defined +# @param password_encryption Specify the type of encryption set for the password. # # @param roles Specifies a hash from which to generate postgresql::server::role resources. # @param config_entries Specifies a hash from which to generate postgresql::server::config_entry resources. @@ -89,79 +91,80 @@ class postgresql::server ( Optional[Variant[String[1], Sensitive[String[1]], Integer]] $postgres_password = undef, - $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, - Array[String[1]] $ipv4acls = $postgresql::params::ipv4acls, - Array[String[1]] $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, - Optional[Stdlib::Filemode] $postgresql_conf_mode = $postgresql::params::postgresql_conf_mode, - $recovery_conf_path = $postgresql::params::recovery_conf_path, - - $datadir = $postgresql::params::datadir, - $xlogdir = $postgresql::params::xlogdir, - $logdir = $postgresql::params::logdir, - - $log_line_prefix = $postgresql::params::log_line_prefix, - - $pg_hba_conf_defaults = $postgresql::params::pg_hba_conf_defaults, - - $user = $postgresql::params::user, - $group = $postgresql::params::group, - - $needs_initdb = $postgresql::params::needs_initdb, - - $encoding = $postgresql::params::encoding, - $locale = $postgresql::params::locale, - $data_checksums = $postgresql::params::data_checksums, - $timezone = $postgresql::params::timezone, - - $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, - Boolean $manage_postgresql_conf_perms = $postgresql::params::manage_postgresql_conf_perms, - Boolean $manage_selinux = $postgresql::params::manage_selinux, - $module_workdir = $postgresql::params::module_workdir, - - $manage_datadir = $postgresql::params::manage_datadir, - $manage_logdir = $postgresql::params::manage_logdir, - $manage_xlogdir = $postgresql::params::manage_xlogdir, - $password_encryption = $postgresql::params::password_encryption, - $extra_systemd_config = $postgresql::params::extra_systemd_config, - - Hash[String, Hash] $roles = {}, - Hash[String, Any] $config_entries = {}, - Postgresql::Pg_hba_rules $pg_hba_rules = {}, - - Boolean $backup_enable = $postgresql::params::backup_enable, - Hash $backup_options = {}, - Enum['pg_dump'] $backup_provider = $postgresql::params::backup_provider, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = $postgresql::params::package_ensure, + String[1] $package_name = $postgresql::params::server_package_name, + + Optional[String[1]] $plperl_package_name = $postgresql::params::plperl_package_name, + Optional[String[1]] $plpython_package_name = $postgresql::params::plpython_package_name, + + Variant[Enum['running', 'stopped'], Boolean] $service_ensure = $postgresql::params::service_ensure, + Boolean $service_enable = $postgresql::params::service_enable, + Boolean $service_manage = $postgresql::params::service_manage, + String[1] $service_name = $postgresql::params::service_name, + Boolean $service_restart_on_change = $postgresql::params::service_restart_on_change, + Optional[String[1]] $service_provider = $postgresql::params::service_provider, + String[1] $service_reload = $postgresql::params::service_reload, + Optional[String[1]] $service_status = $postgresql::params::service_status, + String[1] $default_database = $postgresql::params::default_database, + Hash $default_connect_settings = $postgresql::globals::default_connect_settings, + Optional[String[1]] $listen_addresses = $postgresql::params::listen_addresses, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::params::port, + String[1] $ip_mask_deny_postgres_user = $postgresql::params::ip_mask_deny_postgres_user, + String[1] $ip_mask_allow_all_users = $postgresql::params::ip_mask_allow_all_users, + Array[String[1]] $ipv4acls = $postgresql::params::ipv4acls, + Array[String[1]] $ipv6acls = $postgresql::params::ipv6acls, + + Variant[String[1], Stdlib::Absolutepath] $initdb_path = $postgresql::params::initdb_path, + Optional[Variant[String[1], Stdlib::Absolutepath]] $createdb_path = $postgresql::params::createdb_path, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::params::psql_path, + Variant[String[1], Stdlib::Absolutepath] $pg_hba_conf_path = $postgresql::params::pg_hba_conf_path, + Variant[String[1], Stdlib::Absolutepath] $pg_ident_conf_path = $postgresql::params::pg_ident_conf_path, + Variant[String[1], Stdlib::Absolutepath] $postgresql_conf_path = $postgresql::params::postgresql_conf_path, + Optional[Stdlib::Filemode] $postgresql_conf_mode = $postgresql::params::postgresql_conf_mode, + Variant[String[1], Stdlib::Absolutepath] $recovery_conf_path = $postgresql::params::recovery_conf_path, + + String[1] $datadir = $postgresql::params::datadir, + Optional[String[1]] $xlogdir = $postgresql::params::xlogdir, + Optional[String[1]] $logdir = $postgresql::params::logdir, + + Optional[String[1]] $log_line_prefix = $postgresql::params::log_line_prefix, + + Boolean $pg_hba_conf_defaults = $postgresql::params::pg_hba_conf_defaults, + + String[1] $user = $postgresql::params::user, + String[1] $group = $postgresql::params::group, + + Boolean $needs_initdb = $postgresql::params::needs_initdb, + + Optional[String[1]] $encoding = $postgresql::params::encoding, + Optional[String[1]] $locale = $postgresql::params::locale, + Optional[String[1]] $data_checksums = $postgresql::params::data_checksums, + Optional[String[1]] $timezone = $postgresql::params::timezone, + + Boolean $manage_pg_hba_conf = $postgresql::params::manage_pg_hba_conf, + Boolean $manage_pg_ident_conf = $postgresql::params::manage_pg_ident_conf, + Boolean $manage_recovery_conf = $postgresql::params::manage_recovery_conf, + Boolean $manage_postgresql_conf_perms = $postgresql::params::manage_postgresql_conf_perms, + Boolean $manage_selinux = $postgresql::params::manage_selinux, + String[1] $module_workdir = $postgresql::params::module_workdir, + + Boolean $manage_datadir = $postgresql::params::manage_datadir, + Boolean $manage_logdir = $postgresql::params::manage_logdir, + Boolean $manage_xlogdir = $postgresql::params::manage_xlogdir, + Optional[String] $password_encryption = $postgresql::params::password_encryption, + Optional[String] $extra_systemd_config = $postgresql::params::extra_systemd_config, + + Hash[String, Hash] $roles = {}, + Hash[String, Any] $config_entries = {}, + Postgresql::Pg_hba_rules $pg_hba_rules = {}, + + Boolean $backup_enable = $postgresql::params::backup_enable, + Hash $backup_options = {}, + Enum['pg_dump'] $backup_provider = $postgresql::params::backup_provider, #Deprecated - $version = undef, + Optional[String[1]] $version = undef, + ) inherits postgresql::params { if $version != undef { warning('Passing "version" to postgresql::server is deprecated; please use postgresql::globals instead.') diff --git a/manifests/server/config_entry.pp b/manifests/server/config_entry.pp index 64b59f43d8..974114359a 100644 --- a/manifests/server/config_entry.pp +++ b/manifests/server/config_entry.pp @@ -5,9 +5,9 @@ # @param path Path for postgresql.conf # define postgresql::server::config_entry ( - Enum['present', 'absent'] $ensure = 'present', - $value = undef, - $path = false + Enum['present', 'absent'] $ensure = 'present', + Optional[Variant[String[1], Integer]] $value = undef, + Variant[Boolean, String[1]] $path = false ) { $postgresql_conf_path = $postgresql::server::postgresql_conf_path diff --git a/manifests/server/contrib.pp b/manifests/server/contrib.pp index ef5c3e26b6..e35eb511b3 100644 --- a/manifests/server/contrib.pp +++ b/manifests/server/contrib.pp @@ -6,7 +6,7 @@ # Ensure the contrib package is installed. class postgresql::server::contrib ( Optional[String[1]] $package_name = $postgresql::params::contrib_package_name, - String[1] $package_ensure = 'present' + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { if $package_name { package { 'postgresql-contrib': diff --git a/manifests/server/database.pp b/manifests/server/database.pp index a517f505ed..313d2fa6c8 100644 --- a/manifests/server/database.pp +++ b/manifests/server/database.pp @@ -10,15 +10,15 @@ # @param istemplate Defines the database as a template if set to true. # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. define postgresql::server::database ( - $comment = undef, - $dbname = $title, - $owner = undef, - $tablespace = undef, - $template = 'template0', - $encoding = $postgresql::server::encoding, - $locale = $postgresql::server::locale, - $istemplate = false, - $connect_settings = $postgresql::server::default_connect_settings, + Optional[String[1]] $comment = undef, + String[1] $dbname = $title, + Optional[String[1]] $owner = undef, + Optional[String[1]] $tablespace = undef, + String[1] $template = 'template0', + Optional[String[1]] $encoding = $postgresql::server::encoding, + Optional[String[1]] $locale = $postgresql::server::locale, + Boolean $istemplate = false, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { $createdb_path = $postgresql::server::createdb_path $user = $postgresql::server::user diff --git a/manifests/server/database_grant.pp b/manifests/server/database_grant.pp index 0c389a5378..6705280377 100644 --- a/manifests/server/database_grant.pp +++ b/manifests/server/database_grant.pp @@ -8,13 +8,13 @@ # @param psql_user Specifies the OS user for running psql. Default value: The default user for the module, usually 'postgres'. # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. define postgresql::server::database_grant ( - $privilege, - $db, - $role, - $ensure = undef, - $psql_db = undef, - $psql_user = undef, - $connect_settings = undef, + Enum['ALL', 'CREATE', 'CONNECT', 'TEMPORARY', 'TEMP', 'all', 'create', 'connect', 'temporary', 'temp'] $privilege, + String[1] $db, + String[1] $role, + Optional[Enum['present', 'absent']] $ensure = undef, + Optional[String[1]] $psql_db = undef, + Optional[String[1]] $psql_user = undef, + Optional[Hash] $connect_settings = undef, ) { postgresql::server::grant { "database:${name}": ensure => $ensure, diff --git a/manifests/server/db.pp b/manifests/server/db.pp index 17c860e2a3..9cd7ad4afe 100644 --- a/manifests/server/db.pp +++ b/manifests/server/db.pp @@ -12,17 +12,17 @@ # @param istemplate Specifies that the database is a template, if set to true. # @param owner Sets a user as the owner of the database. define postgresql::server::db ( - $user, - Optional[Variant[String, Sensitive[String]]] $password = undef, - $comment = undef, - $dbname = $title, - $encoding = $postgresql::server::encoding, - $locale = $postgresql::server::locale, - $grant = 'ALL', - $tablespace = undef, - $template = 'template0', - $istemplate = false, - $owner = undef + String[1] $user, + Optional[Variant[String, Sensitive[String]]] $password = undef, + Optional[String[1]] $comment = undef, + String[1] $dbname = $title, + Optional[String[1]] $encoding = $postgresql::server::encoding, + Optional[String[1]] $locale = $postgresql::server::locale, + Variant[String[1], Array[String[1]]] $grant = 'ALL', + Optional[String[1]] $tablespace = undef, + String[1] $template = 'template0', + Boolean $istemplate = false, + Optional[String[1]] $owner = undef ) { if ! defined(Postgresql::Server::Database[$dbname]) { postgresql::server::database { $dbname: diff --git a/manifests/server/default_privileges.pp b/manifests/server/default_privileges.pp index 649954d574..1caf4f89f4 100644 --- a/manifests/server/default_privileges.pp +++ b/manifests/server/default_privileges.pp @@ -12,7 +12,7 @@ # @param psql_path Specifies the OS user for running psql. Default value: The default user for the module, usually 'postgres'. # @param port Specifies the port to access the server. Default value: The default user for the module, usually '5432'. # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. -# @param psql_path Specifies the path to the psql command. +# @param group Specifies the user group to which the privileges will be granted. define postgresql::server::default_privileges ( String $role, String $db, @@ -25,15 +25,15 @@ /(?i:^TYPES$)/, /(?i:^SCHEMAS$)/ # lint:ignore:trailing_comma ] $object_type, - String $schema = 'public', - String $psql_db = $postgresql::server::default_database, - String $psql_user = $postgresql::server::user, - Integer $port = $postgresql::server::port, - Hash $connect_settings = $postgresql::server::default_connect_settings, - Enum['present', 'absent'] $ensure = 'present', - String $group = $postgresql::server::group, - String $psql_path = $postgresql::server::psql_path, - Optional[String] $target_role = undef, + String $schema = 'public', + String $psql_db = $postgresql::server::default_database, + String $psql_user = $postgresql::server::user, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + Hash $connect_settings = $postgresql::server::default_connect_settings, + Enum['present', 'absent'] $ensure = 'present', + String $group = $postgresql::server::group, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, + Optional[String] $target_role = undef, ) { # If possible use the version of the remote database, otherwise # fallback to our local DB version diff --git a/manifests/server/extension.pp b/manifests/server/extension.pp index 8417351430..301749aae9 100644 --- a/manifests/server/extension.pp +++ b/manifests/server/extension.pp @@ -17,16 +17,16 @@ # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. # @param database_resource_name Specifies the resource name of the DB being managed. Defaults to the parameter $database, if left blank. define postgresql::server::extension ( - $database, - $extension = $name, - Optional[String[1]] $schema = undef, - Optional[String[1]] $version = undef, - String[1] $ensure = 'present', - $package_name = undef, - $package_ensure = undef, - Optional[Integer] $port = undef, - $connect_settings = postgresql::default('default_connect_settings'), - $database_resource_name = $database, + String[1] $database, + Optional[Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]]] $package_ensure = undef, + String[1] $extension = $name, + Optional[String[1]] $schema = undef, + Optional[String[1]] $version = undef, + Enum['present', 'absent'] $ensure = 'present', + Optional[String[1]] $package_name = undef, + Optional[Variant[String[1], Stdlib::Port, Integer]] $port = undef, + Hash $connect_settings = postgresql::default('default_connect_settings'), + String[1] $database_resource_name = $database, ) { $user = postgresql::default('user') $group = postgresql::default('group') diff --git a/manifests/server/grant.pp b/manifests/server/grant.pp index a39a443ca4..0720645252 100644 --- a/manifests/server/grant.pp +++ b/manifests/server/grant.pp @@ -5,6 +5,7 @@ # @param privilege Specifies the privilege to grant. Valid options: 'ALL', 'ALL PRIVILEGES' or 'object_type' dependent string. # @param object_type Specifies the type of object to which you are granting privileges. Valid options: 'DATABASE', 'SCHEMA', 'SEQUENCE', 'ALL SEQUENCES IN SCHEMA', 'TABLE' or 'ALL TABLES IN SCHEMA'. # @param object_name Specifies name of object_type to which to grant access, can be either a string or a two element array. String: 'object_name' Array: ['schema_name', 'object_name'] +# @param object_arguments Specifies any arguments to be passed alongisde the access grant. # @param psql_db Specifies the database to execute the grant against. This should not ordinarily be changed from the default # @param psql_user Sets the OS user to run psql. # @param port Port to use when connecting. @@ -31,17 +32,17 @@ /(?i:^SCHEMA$)/, /(?i:^SEQUENCE$)/ # lint:ignore:trailing_comma #/(?i:^VIEW$)/ - ] $object_type = 'database', - Optional[Variant[Array[String,2,2],String[1]]] $object_name = undef, - Array[String[1],0] $object_arguments = [], - String $psql_db = $postgresql::server::default_database, - String $psql_user = $postgresql::server::user, - Integer $port = $postgresql::server::port, - Boolean $onlyif_exists = false, - Hash $connect_settings = $postgresql::server::default_connect_settings, - Enum['present', 'absent'] $ensure = 'present', - String $group = $postgresql::server::group, - String $psql_path = $postgresql::server::psql_path, + ] $object_type = 'database', + Optional[Variant[Array[String,2,2],String[1]]] $object_name = undef, + Array[String[1],0] $object_arguments = [], + String $psql_db = $postgresql::server::default_database, + String $psql_user = $postgresql::server::user, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + Boolean $onlyif_exists = false, + Hash $connect_settings = $postgresql::server::default_connect_settings, + Enum['present', 'absent'] $ensure = 'present', + String $group = $postgresql::server::group, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, ) { case $ensure { default: { diff --git a/manifests/server/grant_role.pp b/manifests/server/grant_role.pp index 19e49ab7f1..f66f803e3f 100644 --- a/manifests/server/grant_role.pp +++ b/manifests/server/grant_role.pp @@ -8,13 +8,13 @@ # @param port Port to use when connecting. # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. define postgresql::server::grant_role ( - String[1] $group, - String[1] $role = $name, - Enum['present', 'absent'] $ensure = 'present', - $psql_db = $postgresql::server::default_database, - $psql_user = $postgresql::server::user, - $port = $postgresql::server::port, - $connect_settings = $postgresql::server::default_connect_settings, + String[1] $group, + String[1] $role = $name, + Enum['present', 'absent'] $ensure = 'present', + String[1] $psql_db = $postgresql::server::default_database, + String[1] $psql_user = $postgresql::server::user, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { case $ensure { 'present': { diff --git a/manifests/server/instance/config.pp b/manifests/server/instance/config.pp index 83d30e9eee..7926dc6529 100644 --- a/manifests/server/instance/config.pp +++ b/manifests/server/instance/config.pp @@ -17,7 +17,7 @@ # @param pg_hba_conf_defaults If false, disables the defaults supplied with the module for pg_hba.conf. This is useful if you disagree with the defaults and wish to override them yourself. Be sure that your changes of course align with the rest of the module, as some access is required to perform basic psql operations for example. # @param user Overrides the default PostgreSQL super user and owner of PostgreSQL related files in the file system. # @param group Overrides the default postgres user group to be used for related files in the file system. -# @param version, Sets PostgreSQL version +# @param version Sets PostgreSQL version # @param manage_pg_hba_conf Boolean. Whether to manage the pg_hba.conf. # @param manage_pg_ident_conf Boolean. Overwrites the pg_ident.conf file. # @param manage_recovery_conf Boolean. Specifies whether or not manage the recovery.conf. @@ -31,36 +31,37 @@ # @param service_enable Enable the PostgreSQL service # @param log_line_prefix PostgreSQL log line prefix # @param timezone Set timezone for the PostgreSQL instance +# @param password_encryption Specify the type of encryption set for the password. # @param extra_systemd_config Adds extra config to systemd config file, can for instance be used to add extra openfiles. This can be a multi line string # lint:endignore:140chars define postgresql::server::instance::config ( - $ip_mask_deny_postgres_user = $postgresql::server::ip_mask_deny_postgres_user, - $ip_mask_allow_all_users = $postgresql::server::ip_mask_allow_all_users, - $listen_addresses = $postgresql::server::listen_addresses, - $port = $postgresql::server::port, - Array[String[1]] $ipv4acls = $postgresql::server::ipv4acls, - Array[String[1]] $ipv6acls = $postgresql::server::ipv6acls, - $pg_hba_conf_path = $postgresql::server::pg_hba_conf_path, - $pg_ident_conf_path = $postgresql::server::pg_ident_conf_path, - $postgresql_conf_path = $postgresql::server::postgresql_conf_path, - Optional[Stdlib::Filemode] $postgresql_conf_mode = $postgresql::server::postgresql_conf_mode, - $recovery_conf_path = $postgresql::server::recovery_conf_path, - $pg_hba_conf_defaults = $postgresql::server::pg_hba_conf_defaults, - $user = $postgresql::server::user, - $group = $postgresql::server::group, - $version = $postgresql::server::_version, - Boolean $manage_pg_hba_conf = $postgresql::server::manage_pg_hba_conf, - Boolean $manage_pg_ident_conf = $postgresql::server::manage_pg_ident_conf, - Boolean $manage_recovery_conf = $postgresql::server::manage_recovery_conf, - Boolean $manage_postgresql_conf_perms = $postgresql::server::manage_postgresql_conf_perms, - $datadir = $postgresql::server::datadir, - $logdir = $postgresql::server::logdir, - $service_name = $postgresql::server::service_name, - $service_enable = $postgresql::server::service_enable, - $log_line_prefix = $postgresql::server::log_line_prefix, - $timezone = $postgresql::server::timezone, - $password_encryption = $postgresql::server::password_encryption, - $extra_systemd_config = $postgresql::server::extra_systemd_config, + String[1] $ip_mask_deny_postgres_user = $postgresql::server::ip_mask_deny_postgres_user, + String[1] $ip_mask_allow_all_users = $postgresql::server::ip_mask_allow_all_users, + Optional[String[1]] $listen_addresses = $postgresql::server::listen_addresses, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + Array[String[1]] $ipv4acls = $postgresql::server::ipv4acls, + Array[String[1]] $ipv6acls = $postgresql::server::ipv6acls, + Variant[String[1], Stdlib::Absolutepath] $pg_hba_conf_path = $postgresql::server::pg_hba_conf_path, + Variant[String[1], Stdlib::Absolutepath] $pg_ident_conf_path = $postgresql::server::pg_ident_conf_path, + Variant[String[1], Stdlib::Absolutepath] $postgresql_conf_path = $postgresql::server::postgresql_conf_path, + Optional[Stdlib::Filemode] $postgresql_conf_mode = $postgresql::server::postgresql_conf_mode, + Variant[String[1], Stdlib::Absolutepath] $recovery_conf_path = $postgresql::server::recovery_conf_path, + Boolean $pg_hba_conf_defaults = $postgresql::server::pg_hba_conf_defaults, + String[1] $user = $postgresql::server::user, + String[1] $group = $postgresql::server::group, + Optional[String[1]] $version = $postgresql::server::_version, + Boolean $manage_pg_hba_conf = $postgresql::server::manage_pg_hba_conf, + Boolean $manage_pg_ident_conf = $postgresql::server::manage_pg_ident_conf, + Boolean $manage_recovery_conf = $postgresql::server::manage_recovery_conf, + Boolean $manage_postgresql_conf_perms = $postgresql::server::manage_postgresql_conf_perms, + String[1] $datadir = $postgresql::server::datadir, + Optional[String[1]] $logdir = $postgresql::server::logdir, + String[1] $service_name = $postgresql::server::service_name, + Boolean $service_enable = $postgresql::server::service_enable, + Optional[String[1]] $log_line_prefix = $postgresql::server::log_line_prefix, + Optional[String[1]] $timezone = $postgresql::server::timezone, + Optional[String] $password_encryption = $postgresql::server::password_encryption, + Optional[String] $extra_systemd_config = $postgresql::server::extra_systemd_config, ) { if ($manage_pg_hba_conf == true) { # Prepare the main pg_hba file diff --git a/manifests/server/instance/initdb.pp b/manifests/server/instance/initdb.pp index 7ec5b19b39..a67e2be1c1 100644 --- a/manifests/server/instance/initdb.pp +++ b/manifests/server/instance/initdb.pp @@ -19,20 +19,20 @@ # @param module_workdir Working directory for the PostgreSQL module # lint:endignore:140chars define postgresql::server::instance::initdb ( - Boolean $needs_initdb = $postgresql::server::needs_initdb, - $initdb_path = $postgresql::server::initdb_path, - $datadir = $postgresql::server::datadir, - $xlogdir = $postgresql::server::xlogdir, - $logdir = $postgresql::server::logdir, - Boolean $manage_datadir = $postgresql::server::manage_datadir, - Boolean $manage_logdir = $postgresql::server::manage_logdir, - Boolean $manage_xlogdir = $postgresql::server::manage_xlogdir, - $encoding = $postgresql::server::encoding, - $locale = $postgresql::server::locale, - Optional[Boolean] $data_checksums = $postgresql::server::data_checksums, - $group = $postgresql::server::group, - $user = $postgresql::server::user, - $module_workdir = $postgresql::server::module_workdir, + Boolean $needs_initdb = $postgresql::server::needs_initdb, + Variant[String[1], Stdlib::Absolutepath] $initdb_path = $postgresql::server::initdb_path, + String[1] $datadir = $postgresql::server::datadir, + Optional[String[1]] $xlogdir = $postgresql::server::xlogdir, + Optional[String[1]] $logdir = $postgresql::server::logdir, + Boolean $manage_datadir = $postgresql::server::manage_datadir, + Boolean $manage_logdir = $postgresql::server::manage_logdir, + Boolean $manage_xlogdir = $postgresql::server::manage_xlogdir, + Optional[String[1]] $encoding = $postgresql::server::encoding, + Optional[String[1]] $locale = $postgresql::server::locale, + Optional[Boolean] $data_checksums = $postgresql::server::data_checksums, + String[1] $group = $postgresql::server::group, + String[1] $user = $postgresql::server::user, + String[1] $module_workdir = $postgresql::server::module_workdir, ) { if $facts['os']['family'] == 'RedHat' and $facts['os']['selinux']['enabled'] == true { $seltype = 'postgresql_db_t' diff --git a/manifests/server/instance/late_initdb.pp b/manifests/server/instance/late_initdb.pp index 90012a72fb..61c3f38520 100644 --- a/manifests/server/instance/late_initdb.pp +++ b/manifests/server/instance/late_initdb.pp @@ -8,12 +8,12 @@ # @param module_workdir Working directory for the PostgreSQL module # lint:endignore:140chars define postgresql::server::instance::late_initdb ( - $encoding = $postgresql::server::encoding, - $user = $postgresql::server::user, - $group = $postgresql::server::group, - $psql_path = $postgresql::server::psql_path, - $port = $postgresql::server::port, - $module_workdir = $postgresql::server::module_workdir, + Optional[String[1]] $encoding = $postgresql::server::encoding, + String[1] $user = $postgresql::server::user, + String[1] $group = $postgresql::server::group, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + String[1] $module_workdir = $postgresql::server::module_workdir, ) { # Set the defaults for the postgresql_psql resource Postgresql_psql { diff --git a/manifests/server/instance/passwd.pp b/manifests/server/instance/passwd.pp index cd2c80e431..89c9a53250 100644 --- a/manifests/server/instance/passwd.pp +++ b/manifests/server/instance/passwd.pp @@ -9,13 +9,13 @@ # @param postgres_password Sets the password for the postgres user to your specified value. By default, this setting uses the superuser account in the Postgres database, with a user called postgres and no password. # lint:endignore:140chars define postgresql::server::instance::passwd ( - $user = $postgresql::server::user, - $group = $postgresql::server::group, - $psql_path = $postgresql::server::psql_path, - $port = $postgresql::server::port, - $database = $postgresql::server::default_database, - $module_workdir = $postgresql::server::module_workdir, - $postgres_password = $postgresql::server::postgres_password, + String[1] $user = $postgresql::server::user, + String[1] $group = $postgresql::server::group, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + String[1] $database = $postgresql::server::default_database, + String[1] $module_workdir = $postgresql::server::module_workdir, + Optional[Variant[String[1], Sensitive[String[1]], Integer]] $postgres_password = $postgresql::server::postgres_password, ) { $real_postgres_password = if $postgres_password =~ Sensitive { diff --git a/manifests/server/instance/reload.pp b/manifests/server/instance/reload.pp index 8d81a33487..7bcc7130ca 100644 --- a/manifests/server/instance/reload.pp +++ b/manifests/server/instance/reload.pp @@ -1,8 +1,8 @@ # @param service_reload Overrides the default reload command for your PostgreSQL service. # @param service_status Overrides the default status check command for your PostgreSQL service. define postgresql::server::instance::reload ( - $service_status = $postgresql::server::service_status, - $service_reload = $postgresql::server::service_reload, + String[1] $service_status = $postgresql::server::service_status, + String[1] $service_reload = $postgresql::server::service_reload, ) { exec { 'postgresql_reload': path => '/usr/bin:/usr/sbin:/bin:/sbin', diff --git a/manifests/server/instance/service.pp b/manifests/server/instance/service.pp index cd5e37e61c..2f19d2e392 100644 --- a/manifests/server/instance/service.pp +++ b/manifests/server/instance/service.pp @@ -10,20 +10,20 @@ # Default value: 5432. Meaning the Postgres server listens on TCP port 5432. # @param default_database Specifies the name of the default database to connect with. On most systems this is 'postgres'. # @param psql_path Specifies the path to the psql command. -# @param default_connect_settings Specifies a hash of environment variables used when connecting to a remote server. Becomes the default for other defined types, such as postgresql::server::role. +# @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. Becomes the default for other defined types, such as postgresql::server::role. # lint:endignore:140chars define postgresql::server::instance::service ( - $service_ensure = $postgresql::server::service_ensure, - $service_enable = $postgresql::server::service_enable, - $service_manage = $postgresql::server::service_manage, - $service_name = $postgresql::server::service_name, - $service_provider = $postgresql::server::service_provider, - $service_status = $postgresql::server::service_status, - $user = $postgresql::server::user, - $port = $postgresql::server::port, - $default_database = $postgresql::server::default_database, - $psql_path = $postgresql::server::psql_path, - $connect_settings = $postgresql::server::default_connect_settings, + Variant[Enum['running', 'stopped'], Boolean] $service_ensure = $postgresql::server::service_ensure, + Boolean $service_enable = $postgresql::server::service_enable, + Boolean $service_manage = $postgresql::server::service_manage, + String[1] $service_name = $postgresql::server::service_name, + Optional[String[1]] $service_provider = $postgresql::server::service_provider, + String[1] $service_status = $postgresql::server::service_status, + String[1] $user = $postgresql::server::user, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + String[1] $default_database = $postgresql::server::default_database, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { anchor { 'postgresql::server::service::begin': } diff --git a/manifests/server/pg_ident_rule.pp b/manifests/server/pg_ident_rule.pp index 6bd18af18f..85398d2a25 100644 --- a/manifests/server/pg_ident_rule.pp +++ b/manifests/server/pg_ident_rule.pp @@ -11,15 +11,15 @@ # @param order Defines an order for placing the mapping in pg_ident.conf. Default value: 150. # @param target Provides the target for the rule and is generally an internal only property. Use with caution. define postgresql::server::pg_ident_rule ( - $map_name, - $system_username, - $database_username, - $description = 'none', - $order = '150', + String[1] $map_name, + String[1] $system_username, + String[1] $database_username, + String[1] $description = 'none', + String[1] $order = '150', # Needed for testing primarily, support for multiple files is not really # working. - $target = $postgresql::server::pg_ident_conf_path + Variant[String[1], Stdlib::Absolutepath] $target = $postgresql::server::pg_ident_conf_path ) { if $postgresql::server::manage_pg_ident_conf == false { fail('postgresql::server::manage_pg_ident_conf has been disabled, so this resource is now unused and redundant, either enable that option or remove this resource from your manifests') # lint:ignore:140chars diff --git a/manifests/server/plperl.pp b/manifests/server/plperl.pp index 842c7ad5ed..1db5d4aa8f 100644 --- a/manifests/server/plperl.pp +++ b/manifests/server/plperl.pp @@ -3,8 +3,8 @@ # @param package_ensure The ensure parameter passed on to PostgreSQL PL/Perl package resource. # @param package_name The name of the PostgreSQL PL/Perl package. class postgresql::server::plperl ( - $package_ensure = 'present', - $package_name = $postgresql::server::plperl_package_name + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', + Optional[String[1]] $package_name = $postgresql::server::plperl_package_name, ) { package { 'postgresql-plperl': ensure => $package_ensure, diff --git a/manifests/server/plpython.pp b/manifests/server/plpython.pp index 55f6da448a..8577bd34e5 100644 --- a/manifests/server/plpython.pp +++ b/manifests/server/plpython.pp @@ -5,8 +5,8 @@ # @param package_name # Specifies the name of the postgresql PL/Python package. class postgresql::server::plpython ( - $package_ensure = 'present', - $package_name = $postgresql::server::plpython_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', + Optional[String[1]] $package_name = $postgresql::server::plpython_package_name, ) { package { 'postgresql-plpython': ensure => $package_ensure, diff --git a/manifests/server/postgis.pp b/manifests/server/postgis.pp index c35ef5ce6e..c259e030ff 100644 --- a/manifests/server/postgis.pp +++ b/manifests/server/postgis.pp @@ -3,8 +3,8 @@ # @param package_name Sets the package name. # @param package_ensure Specifies if the package is present or not. class postgresql::server::postgis ( - String $package_name = $postgresql::params::postgis_package_name, - String[1] $package_ensure = 'present' + String $package_name = $postgresql::params::postgis_package_name, + Variant[Enum['present', 'absent', 'purged', 'disabled', 'installed', 'latest'], String[1]] $package_ensure = 'present', ) inherits postgresql::params { package { 'postgresql-postgis': ensure => $package_ensure, diff --git a/manifests/server/reassign_owned_by.pp b/manifests/server/reassign_owned_by.pp index 5c3108d8c1..e561e97aed 100644 --- a/manifests/server/reassign_owned_by.pp +++ b/manifests/server/reassign_owned_by.pp @@ -12,9 +12,9 @@ String $old_role, String $new_role, String $db, - String $psql_user = $postgresql::server::user, - Integer $port = $postgresql::server::port, - Hash $connect_settings = $postgresql::server::default_connect_settings, + String $psql_user = $postgresql::server::user, + Variant[String[1], Stdlib::Port, Integer] $port = $postgresql::server::port, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { $sql_command = "REASSIGN OWNED BY \"${old_role}\" TO \"${new_role}\"" diff --git a/manifests/server/recovery.pp b/manifests/server/recovery.pp index 40f0934251..bcb8db9349 100644 --- a/manifests/server/recovery.pp +++ b/manifests/server/recovery.pp @@ -25,22 +25,22 @@ # @param target Provides the target for the rule, and is generally an internal only property. Use with caution. # lint:endignore:140chars define postgresql::server::recovery ( - $restore_command = undef, - $archive_cleanup_command = undef, - $recovery_end_command = undef, - $recovery_target_name = undef, - $recovery_target_time = undef, - $recovery_target_xid = undef, - $recovery_target_inclusive = undef, - $recovery_target = undef, - $recovery_target_timeline = undef, - $pause_at_recovery_target = undef, - $standby_mode = undef, - $primary_conninfo = undef, - $primary_slot_name = undef, - $trigger_file = undef, - $recovery_min_apply_delay = undef, - $target = $postgresql::server::recovery_conf_path + Optional[String] $restore_command = undef, + Optional[String[1]] $archive_cleanup_command = undef, + Optional[String[1]] $recovery_end_command = undef, + Optional[String[1]] $recovery_target_name = undef, + Optional[String[1]] $recovery_target_time = undef, + Optional[String[1]] $recovery_target_xid = undef, + Optional[Boolean] $recovery_target_inclusive = undef, + Optional[String[1]] $recovery_target = undef, + Optional[String[1]] $recovery_target_timeline = undef, + Optional[Boolean] $pause_at_recovery_target = undef, + Optional[String[1]] $standby_mode = undef, + Optional[String[1]] $primary_conninfo = undef, + Optional[String[1]] $primary_slot_name = undef, + Optional[String[1]] $trigger_file = undef, + Optional[Integer] $recovery_min_apply_delay = undef, + Variant[String[1], Stdlib::Absolutepath] $target = $postgresql::server::recovery_conf_path ) { if $postgresql::server::manage_recovery_conf == false { fail('postgresql::server::manage_recovery_conf has been disabled, so this resource is now unused and redundant, either enable that option or remove this resource from your manifests') # lint:ignore:140chars diff --git a/manifests/server/role.pp b/manifests/server/role.pp index 978a246217..9730eae85f 100644 --- a/manifests/server/role.pp +++ b/manifests/server/role.pp @@ -21,26 +21,26 @@ # @param hash Specify the hash method for pg password # @param salt Specify the salt use for the scram-sha-256 encoding password (default username) define postgresql::server::role ( - $update_password = true, - Variant[Boolean, String, Sensitive[String]] $password_hash = false, - $createdb = false, - $createrole = false, - $db = $postgresql::server::default_database, - $port = undef, - $login = true, - $inherit = true, - $superuser = false, - $replication = false, - $connection_limit = '-1', - $username = $title, - $connect_settings = $postgresql::server::default_connect_settings, - $psql_user = $postgresql::server::user, - $psql_group = $postgresql::server::group, - $psql_path = $postgresql::server::psql_path, - $module_workdir = $postgresql::server::module_workdir, - Enum['present', 'absent'] $ensure = 'present', - Enum['md5', 'scram-sha-256'] $hash = 'md5', - Optional[Variant[String[1], Integer]] $salt = undef, + Boolean $update_password = true, + Variant[Boolean, String, Sensitive[String]] $password_hash = false, + Boolean $createdb = false, + Boolean $createrole = false, + String[1] $db = $postgresql::server::default_database, + Optional[Variant[String[1], Stdlib::Port, Integer]] $port = undef, + Boolean $login = true, + Boolean $inherit = true, + Boolean $superuser = false, + Boolean $replication = false, + String[1] $connection_limit = '-1', + String[1] $username = $title, + Hash $connect_settings = $postgresql::server::default_connect_settings, + String[1] $psql_user = $postgresql::server::user, + String[1] $psql_group = $postgresql::server::group, + Variant[String[1], Stdlib::Absolutepath] $psql_path = $postgresql::server::psql_path, + String[1] $module_workdir = $postgresql::server::module_workdir, + Enum['present', 'absent'] $ensure = 'present', + Enum['md5', 'scram-sha-256'] $hash = 'md5', + Optional[Variant[String[1], Integer]] $salt = undef, ) { $password_hash_unsensitive = if $password_hash =~ Sensitive[String] { $password_hash.unwrap diff --git a/manifests/server/schema.pp b/manifests/server/schema.pp index ffaaeb89da..8a061c2b2a 100644 --- a/manifests/server/schema.pp +++ b/manifests/server/schema.pp @@ -13,10 +13,10 @@ # db => 'template1', # } define postgresql::server::schema ( - $db = $postgresql::server::default_database, - $owner = undef, - $schema = $title, - $connect_settings = $postgresql::server::default_connect_settings, + String[1] $db = $postgresql::server::default_database, + Optional[String[1]] $owner = undef, + String[1] $schema = $title, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { $user = $postgresql::server::user $group = $postgresql::server::group diff --git a/manifests/server/table_grant.pp b/manifests/server/table_grant.pp index a198fbd7b9..d2310ce9fe 100644 --- a/manifests/server/table_grant.pp +++ b/manifests/server/table_grant.pp @@ -11,16 +11,16 @@ # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. # @param onlyif_exists Create grant only if it doesn't exist. define postgresql::server::table_grant ( - $privilege, - $table, - $db, - $role, - $ensure = undef, - $port = undef, - $psql_db = undef, - $psql_user = undef, - $connect_settings = undef, - $onlyif_exists = false, + Enum['ALL', 'SELECT', 'INSERT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER', 'all', 'select', 'insert', 'update', 'delete', 'truncate', 'references', 'trigger'] $privilege, + String[1] $table, + String[1] $db, + String[1] $role, + Optional[Enum['present', 'absent']] $ensure = undef, + Optional[Variant[String[1], Stdlib::Port, Integer]] $port = undef, + Optional[String[1]] $psql_db = undef, + Optional[String[1]] $psql_user = undef, + Optional[Hash] $connect_settings = undef, + Boolean $onlyif_exists = false, ) { postgresql::server::grant { "table:${name}": ensure => $ensure, diff --git a/manifests/server/tablespace.pp b/manifests/server/tablespace.pp index 3af701c1d2..2c992b48b0 100644 --- a/manifests/server/tablespace.pp +++ b/manifests/server/tablespace.pp @@ -6,11 +6,11 @@ # @param spcname Specifies the name of the tablespace. # @param connect_settings Specifies a hash of environment variables used when connecting to a remote server. define postgresql::server::tablespace ( - $location, - $manage_location = true, - $owner = undef, - $spcname = $title, - $connect_settings = $postgresql::server::default_connect_settings, + String[1] $location, + Boolean $manage_location = true, + Optional[String[1]] $owner = undef, + String[1] $spcname = $title, + Hash $connect_settings = $postgresql::server::default_connect_settings, ) { $user = $postgresql::server::user $group = $postgresql::server::group diff --git a/manifests/validate_db_connection.pp b/manifests/validate_db_connection.pp index 82f3b91226..726264a263 100644 --- a/manifests/validate_db_connection.pp +++ b/manifests/validate_db_connection.pp @@ -18,16 +18,16 @@ # @param create_db_first Creates the database when obtaining a successful connection. # define postgresql::validate_db_connection ( - $database_host = undef, - $database_name = undef, + Optional[String[1]] $database_host = undef, + Optional[String[1]] $database_name = undef, Optional[Variant[String, Sensitive[String]]] $database_password = undef, - $database_username = undef, - $database_port = undef, - $connect_settings = undef, - $run_as = undef, - $sleep = 2, - $tries = 10, - $create_db_first = true + Optional[String[1]] $database_username = undef, + Optional[Variant[String[1], Integer]] $database_port = undef, + Optional[Hash] $connect_settings = undef, + Optional[String[1]] $run_as = undef, + Integer $sleep = 2, + Integer $tries = 10, + Boolean $create_db_first = true ) { include postgresql::client include postgresql::params