diff --git a/manifests/init.pp b/manifests/init.pp index b230bdb789..582b4ddac9 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -483,8 +483,8 @@ Optional[Boolean] $purge_vhost_dir = undef, Boolean $purge_vdir = false, Optional[String[1]] $serveradmin = undef, - Enum['On', 'Off', 'on', 'off'] $sendfile = 'On', - Optional[Enum['On', 'Off', 'on', 'off']] $ldap_verify_server_cert = undef, + Apache::OnOff $sendfile = 'On', + Optional[Apache::OnOff] $ldap_verify_server_cert = undef, Optional[String] $ldap_trusted_mode = undef, Boolean $error_documents = false, Integer[0] $timeout = 60, @@ -492,7 +492,7 @@ Stdlib::Absolutepath $server_root = $apache::params::server_root, Stdlib::Absolutepath $conf_dir = $apache::params::conf_dir, Stdlib::Absolutepath $confd_dir = $apache::params::confd_dir, - Enum['Off', 'On', 'Double', 'off', 'on', 'double'] $hostname_lookups = $apache::params::hostname_lookups, + Variant[Apache::OnOff, Enum['Double', 'double']] $hostname_lookups = $apache::params::hostname_lookups, Optional[Stdlib::Absolutepath] $conf_enabled = $apache::params::conf_enabled, Stdlib::Absolutepath $vhost_dir = $apache::params::vhost_dir, Optional[Stdlib::Absolutepath] $vhost_enable_dir = $apache::params::vhost_enable_dir, @@ -513,7 +513,7 @@ String $group = $apache::params::group, Optional[String] $http_protocol_options = $apache::params::http_protocol_options, Array $supplementary_groups = [], - Enum['On', 'Off'] $keepalive = $apache::params::keepalive, + Apache::OnOff $keepalive = $apache::params::keepalive, Integer $keepalive_timeout = $apache::params::keepalive_timeout, Integer $max_keepalive_requests = $apache::params::max_keepalive_requests, Integer $limitreqfieldsize = 8190, @@ -527,11 +527,11 @@ Stdlib::Absolutepath $ports_file = $apache::params::ports_file, Stdlib::Absolutepath $docroot = $apache::params::docroot, Apache::ServerTokens $server_tokens = 'Prod', - Variant[Enum['On', 'Off'], String] $server_signature = 'On', - Enum['On', 'Off', 'extended'] $trace_enable = 'On', - Optional[Enum['on', 'off', 'nodecode']] $allow_encoded_slashes = undef, + Variant[Apache::OnOff, String] $server_signature = 'On', + Variant[Apache::OnOff, Enum['extended']] $trace_enable = 'On', + Optional[Variant[Apache::OnOff, Enum['nodecode']]] $allow_encoded_slashes = undef, Optional[String] $file_e_tag = undef, - Optional[Enum['On', 'on', 'Off', 'off', 'DNS', 'dns']] $use_canonical_name = undef, + Optional[Variant[Apache::OnOff, Enum['DNS', 'dns']]] $use_canonical_name = undef, String $package_ensure = 'installed', Boolean $use_optional_includes = $apache::params::use_optional_includes, Boolean $use_systemd = $apache::params::use_systemd, diff --git a/manifests/mod/dumpio.pp b/manifests/mod/dumpio.pp index df892a919e..4246356822 100644 --- a/manifests/mod/dumpio.pp +++ b/manifests/mod/dumpio.pp @@ -20,8 +20,8 @@ # @see https://httpd.apache.org/docs/current/mod/mod_dumpio.html for additional documentation. # class apache::mod::dumpio ( - Enum['Off', 'On', 'off', 'on'] $dump_io_input = 'Off', - Enum['Off', 'On', 'off', 'on'] $dump_io_output = 'Off', + Apache::OnOff $dump_io_input = 'Off', + Apache::OnOff $dump_io_output = 'Off', ) { include apache diff --git a/manifests/mod/md.pp b/manifests/mod/md.pp index d8847ed67f..d51e5b8c41 100644 --- a/manifests/mod/md.pp +++ b/manifests/mod/md.pp @@ -94,29 +94,29 @@ # @note Unsupported platforms: CentOS: 6, 7; Debian: 8, 9; OracleLinux: all; RedHat: 6, 7; Scientific: all; SLES: all; Ubuntu: 14, 16, 18 class apache::mod::md ( Optional[String] $md_activation_delay = undef, - Optional[Enum['on', 'off']] $md_base_server = undef, + Optional[Apache::OnOff] $md_base_server = undef, Optional[Array[Enum['dns-01', 'http-01', 'tls-alpn-01']]] $md_ca_challenges = undef, Optional[Enum['accepted']] $md_certificate_agreement = undef, Optional[Stdlib::HTTPUrl] $md_certificate_authority = undef, Optional[String] $md_certificate_check = undef, # undocumented Optional[String] $md_certificate_monitor = undef, Optional[Enum['ACME']] $md_certificate_protocol = undef, - Optional[Enum['on', 'off']] $md_certificate_status = undef, + Optional[Apache::OnOff] $md_certificate_status = undef, Optional[Stdlib::Absolutepath] $md_challenge_dns01 = undef, Optional[String] $md_contact_email = undef, Optional[Stdlib::HTTPUrl] $md_http_proxy = undef, Optional[Enum['auto', 'manual']] $md_members = undef, Optional[Stdlib::Absolutepath] $md_message_cmd = undef, - Optional[Enum['on', 'off']] $md_must_staple = undef, + Optional[Apache::OnOff] $md_must_staple = undef, Optional[Stdlib::Absolutepath] $md_notify_cmd = undef, Optional[String] $md_port_map = undef, Optional[String] $md_private_keys = undef, Optional[Enum['always', 'auto', 'manual']] $md_renew_mode = undef, Optional[String] $md_renew_window = undef, Optional[Enum['off', 'permanent', 'temporary']] $md_require_https = undef, - Optional[Enum['on', 'off']] $md_server_status = undef, - Optional[Enum['on', 'off']] $md_staple_others = undef, - Optional[Enum['on', 'off']] $md_stapling = undef, + Optional[Apache::OnOff] $md_server_status = undef, + Optional[Apache::OnOff] $md_staple_others = undef, + Optional[Apache::OnOff] $md_stapling = undef, Optional[String] $md_stapling_keep_response = undef, Optional[String] $md_stapling_renew_window = undef, Optional[Stdlib::Absolutepath] $md_store_dir = undef, diff --git a/manifests/mod/passenger.pp b/manifests/mod/passenger.pp index 1b0047ed90..eca8c0e0d4 100644 --- a/manifests/mod/passenger.pp +++ b/manifests/mod/passenger.pp @@ -329,38 +329,38 @@ Optional[String] $mod_package = undef, Optional[String] $mod_package_ensure = undef, Optional[String] $mod_path = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_allow_encoded_slashes = undef, + Optional[Apache::OnOff] $passenger_allow_encoded_slashes = undef, Optional[String] $passenger_anonymous_telemetry_proxy = undef, Optional[String] $passenger_app_env = undef, Optional[String] $passenger_app_group_name = undef, Optional[String] $passenger_app_root = undef, Optional[String] $passenger_app_type = undef, Optional[String] $passenger_base_uri = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_buffer_response = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_buffer_upload = undef, + Optional[Apache::OnOff] $passenger_buffer_response = undef, + Optional[Apache::OnOff] $passenger_buffer_upload = undef, Optional[String] $passenger_concurrency_model = undef, String $passenger_conf_file = $apache::params::passenger_conf_file, Optional[String] $passenger_conf_package_file = $apache::params::passenger_conf_package_file, Optional[Stdlib::Absolutepath] $passenger_data_buffer_dir = undef, Optional[String] $passenger_debug_log_file = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_debugger = undef, + Optional[Apache::OnOff] $passenger_debugger = undef, Optional[String] $passenger_default_group = undef, Optional[String] $passenger_default_ruby = $apache::params::passenger_default_ruby, Optional[String] $passenger_default_user = undef, Optional[Boolean] $passenger_disable_anonymous_telemetry = undef, Optional[Boolean] $passenger_disable_log_prefix = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_disable_security_update_check = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_enabled = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_error_override = undef, + Optional[Apache::OnOff] $passenger_disable_security_update_check = undef, + Optional[Apache::OnOff] $passenger_enabled = undef, + Optional[Apache::OnOff] $passenger_error_override = undef, Optional[String] $passenger_file_descriptor_log_file = undef, Optional[String] $passenger_fly_with = undef, Optional[Variant[Integer, String]] $passenger_force_max_concurrent_requests_per_process = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_friendly_error_pages = undef, + Optional[Apache::OnOff] $passenger_friendly_error_pages = undef, Optional[String] $passenger_group = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_high_performance = undef, + Optional[Apache::OnOff] $passenger_high_performance = undef, Optional[String] $passenger_installed_version = undef, Optional[String] $passenger_instance_registry_dir = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_load_shell_envvars = undef, + Optional[Apache::OnOff] $passenger_load_shell_envvars = undef, Optional[Boolean] $passenger_preload_bundler = undef, Optional[Stdlib::Absolutepath] $passenger_log_file = undef, Optional[Integer] $passenger_log_level = undef, @@ -379,28 +379,28 @@ Optional[Integer] $passenger_pool_idle_time = undef, Optional[Variant[String, Array[String]]] $passenger_pre_start = undef, Optional[String] $passenger_python = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_resist_deployment_errors = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_resolve_symlinks_in_document_root = undef, + Optional[Apache::OnOff] $passenger_resist_deployment_errors = undef, + Optional[Apache::OnOff] $passenger_resolve_symlinks_in_document_root = undef, Optional[Variant[Integer, String]] $passenger_response_buffer_high_watermark = undef, Optional[String] $passenger_restart_dir = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_rolling_restarts = undef, + Optional[Apache::OnOff] $passenger_rolling_restarts = undef, Optional[String] $passenger_root = $apache::params::passenger_root, Optional[String] $passenger_ruby = $apache::params::passenger_ruby, Optional[String] $passenger_security_update_check_proxy = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_show_version_in_header = undef, + Optional[Apache::OnOff] $passenger_show_version_in_header = undef, Optional[Variant[Integer, String]] $passenger_socket_backlog = undef, Optional[String] $passenger_spawn_dir = undef, Optional[Enum['smart', 'direct', 'smart-lv2', 'conservative']] $passenger_spawn_method = undef, Optional[Integer] $passenger_start_timeout = undef, Optional[String] $passenger_startup_file = undef, Optional[Integer] $passenger_stat_throttle_rate = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_sticky_sessions = undef, + Optional[Apache::OnOff] $passenger_sticky_sessions = undef, Optional[String] $passenger_sticky_sessions_cookie_name = undef, Optional[String] $passenger_sticky_sessions_cookie_attributes = undef, Optional[Integer] $passenger_thread_count = undef, Optional[String] $passenger_use_global_queue = undef, Optional[String] $passenger_user = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $passenger_user_switching = undef, + Optional[Apache::OnOff] $passenger_user_switching = undef, Optional[String] $rack_auto_detect = undef, Optional[String] $rack_autodetect = undef, Optional[String] $rack_base_uri = undef, diff --git a/manifests/mod/peruser.pp b/manifests/mod/peruser.pp index 5f46bbe066..dc5049d4ba 100644 --- a/manifests/mod/peruser.pp +++ b/manifests/mod/peruser.pp @@ -29,7 +29,7 @@ Integer $maxrequestsperchild = 1000, Integer $idletimeout = 120, Integer $expiretimeout = 120, - Enum['On', 'Off'] $keepalive = 'Off', + Apache::OnOff $keepalive = 'Off', ) { include apache case $facts['os']['family'] { diff --git a/manifests/mod/security.pp b/manifests/mod/security.pp index 9c407c4e4e..0ebe2d8ec5 100644 --- a/manifests/mod/security.pp +++ b/manifests/mod/security.pp @@ -163,8 +163,8 @@ Integer $secrequestbodyinmemorylimit = 131072, Integer[1,4] $paranoia_level = 1, Integer[1,4] $executing_paranoia_level = $paranoia_level, - Enum['On', 'Off'] $secrequestbodyaccess = 'On', - Enum['On', 'Off'] $secresponsebodyaccess = 'Off', + Apache::OnOff $secrequestbodyaccess = 'On', + Apache::OnOff $secresponsebodyaccess = 'Off', Enum['Reject', 'ProcessPartial'] $secrequestbodylimitaction = 'Reject', Enum['Reject', 'ProcessPartial'] $secresponsebodylimitaction = 'ProcessPartial', Boolean $manage_security_crs = true, diff --git a/manifests/mod/ssl.pp b/manifests/mod/ssl.pp index 4f14eb2495..83aca77834 100644 --- a/manifests/mod/ssl.pp +++ b/manifests/mod/ssl.pp @@ -96,7 +96,7 @@ Optional[Stdlib::Absolutepath] $ssl_key = undef, Optional[Stdlib::Absolutepath] $ssl_ca = undef, String $ssl_cipher = $apache::params::ssl_cipher, - Variant[Boolean, Enum['on', 'off']] $ssl_honorcipherorder = true, + Variant[Boolean, Apache::OnOff] $ssl_honorcipherorder = true, Array[String] $ssl_protocol = $apache::params::ssl_protocol, Array $ssl_proxy_protocol = [], Optional[String[1]] $ssl_proxy_cipher_suite = $apache::params::ssl_proxy_cipher_suite, @@ -119,7 +119,9 @@ } else { $_ssl_honorcipherorder = $ssl_honorcipherorder ? { 'on' => true, + 'On' => true, 'off' => false, + 'Off' => false, default => true, } } diff --git a/manifests/mod/status.pp b/manifests/mod/status.pp index ac95caf5a9..cd6416fe73 100644 --- a/manifests/mod/status.pp +++ b/manifests/mod/status.pp @@ -31,7 +31,7 @@ # class apache::mod::status ( Optional[Variant[String, Array, Hash]] $requires = undef, - Enum['On', 'Off', 'on', 'off'] $extended_status = 'On', + Apache::OnOff $extended_status = 'On', String $status_path = '/server-status', ) inherits apache::params { include apache diff --git a/manifests/vhost.pp b/manifests/vhost.pp index af172bcba9..13d348bb1b 100644 --- a/manifests/vhost.pp +++ b/manifests/vhost.pp @@ -1720,15 +1720,15 @@ Boolean $ssl_reload_on_change = $apache::default_ssl_reload_on_change, Optional[Variant[Array[String], String]] $ssl_protocol = undef, Optional[Variant[Array[String], String]] $ssl_cipher = undef, - Variant[Boolean, Enum['on', 'On', 'off', 'Off'], Undef] $ssl_honorcipherorder = undef, + Variant[Boolean, Apache::OnOff, Undef] $ssl_honorcipherorder = undef, Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_verify_client = undef, Optional[Integer] $ssl_verify_depth = undef, Optional[Enum['none', 'optional', 'require', 'optional_no_ca']] $ssl_proxy_verify = undef, Optional[Integer[0]] $ssl_proxy_verify_depth = undef, Optional[Stdlib::Absolutepath] $ssl_proxy_ca_cert = undef, - Optional[Enum['on', 'off']] $ssl_proxy_check_peer_cn = undef, - Optional[Enum['on', 'off']] $ssl_proxy_check_peer_name = undef, - Optional[Enum['on', 'off']] $ssl_proxy_check_peer_expire = undef, + Optional[Apache::OnOff] $ssl_proxy_check_peer_cn = undef, + Optional[Apache::OnOff] $ssl_proxy_check_peer_name = undef, + Optional[Apache::OnOff] $ssl_proxy_check_peer_expire = undef, Optional[Stdlib::Absolutepath] $ssl_proxy_machine_cert = undef, Optional[Stdlib::Absolutepath] $ssl_proxy_machine_cert_chain = undef, Optional[String] $ssl_proxy_cipher_suite = undef, @@ -1738,7 +1738,7 @@ Boolean $ssl_proxyengine = false, Optional[Boolean] $ssl_stapling = undef, Optional[Integer] $ssl_stapling_timeout = undef, - Optional[Enum['on', 'off']] $ssl_stapling_return_errors = undef, + Optional[Apache::OnOff] $ssl_stapling_return_errors = undef, Optional[String] $ssl_user_name = undef, Optional[Apache::Vhost::Priority] $priority = undef, Boolean $default_vhost = false, @@ -1831,14 +1831,14 @@ Optional[String] $wsgi_process_group = undef, Optional[Hash] $wsgi_script_aliases_match = undef, Optional[Hash] $wsgi_script_aliases = undef, - Optional[Enum['on', 'off', 'On', 'Off']] $wsgi_pass_authorization = undef, - Optional[Enum['On', 'Off']] $wsgi_chunked_request = undef, + Optional[Apache::OnOff] $wsgi_pass_authorization = undef, + Optional[Apache::OnOff] $wsgi_chunked_request = undef, Optional[String] $custom_fragment = undef, Optional[Hash] $itk = undef, Optional[String] $action = undef, Variant[Array[String], String] $additional_includes = [], Boolean $use_optional_includes = $apache::use_optional_includes, - Optional[Enum['on', 'off', 'nodecode']] $allow_encoded_slashes = undef, + Optional[Variant[Apache::OnOff, Enum['nodecode']]] $allow_encoded_slashes = undef, Optional[Pattern[/^[\w-]+ [\w-]+$/]] $suexec_user_group = undef, Optional[Boolean] $h2_copy_files = undef, @@ -1915,16 +1915,16 @@ Optional[String] $modsec_allowed_methods = undef, Array[Hash] $jk_mounts = [], Boolean $auth_kerb = false, - Enum['on', 'off'] $krb_method_negotiate = 'on', - Enum['on', 'off'] $krb_method_k5passwd = 'on', - Enum['on', 'off'] $krb_authoritative = 'on', + Apache::OnOff $krb_method_negotiate = 'on', + Apache::OnOff $krb_method_k5passwd = 'on', + Apache::OnOff $krb_authoritative = 'on', Array[String] $krb_auth_realms = [], Optional[String] $krb_5keytab = undef, - Optional[Enum['on', 'off']] $krb_local_user_mapping = undef, - Enum['on', 'off'] $krb_verify_kdc = 'on', + Optional[Apache::OnOff] $krb_local_user_mapping = undef, + Apache::OnOff $krb_verify_kdc = 'on', String $krb_servicename = 'HTTP', - Enum['on', 'off'] $krb_save_credentials = 'off', - Optional[Enum['on', 'off']] $keepalive = undef, + Apache::OnOff $krb_save_credentials = 'off', + Optional[Apache::OnOff] $keepalive = undef, Optional[Variant[Integer, String]] $keepalive_timeout = undef, Optional[Variant[Integer, String]] $max_keepalive_requests = undef, Optional[String] $cas_attribute_prefix = undef, @@ -1937,7 +1937,7 @@ Boolean $cas_validate_saml = false, Optional[String] $cas_cookie_path = undef, Optional[String] $shib_compat_valid_user = undef, - Optional[Enum['On', 'on', 'Off', 'off', 'DNS', 'dns']] $use_canonical_name = undef, + Optional[Variant[Apache::OnOff, Enum['DNS', 'dns']]] $use_canonical_name = undef, Optional[Variant[String, Array[String]]] $comment = undef, Hash $define = {}, Boolean $auth_oidc = false, diff --git a/spec/classes/apache_spec.rb b/spec/classes/apache_spec.rb index c1b8262459..336f980c92 100644 --- a/spec/classes/apache_spec.rb +++ b/spec/classes/apache_spec.rb @@ -493,7 +493,7 @@ it 'fails' do expect { catalogue - }.to raise_error(Puppet::PreformattedError, %r{Evaluation Error: Error while evaluating a Resource Statement, Class\[Apache\]: parameter 'sendfile' expects a match for Enum\['Off', 'On', 'off', 'on'\]}) # rubocop:disable Layout/LineLength + }.to raise_error(Puppet::PreformattedError, %r{Evaluation Error: Error while evaluating a Resource Statement, Class\[Apache\]: parameter 'sendfile' expects a match for Apache::OnOff = Enum\['Off', 'On', 'off', 'on'\]}) # rubocop:disable Layout/LineLength end end diff --git a/types/onoff.pp b/types/onoff.pp new file mode 100644 index 0000000000..b7aa15faa4 --- /dev/null +++ b/types/onoff.pp @@ -0,0 +1,2 @@ +# @summary A string that is accepted in Apache config to turn something on or off +type Apache::OnOff = Enum['On', 'on', 'Off', 'off']