Add parameter type validations

Some parameters accept only certain parameter types/values. This adds
validations in parameter input to return sensible errors to users.

Change-Id: Ie6c0cf7956c228fead74dcb59e94111402303a56
This commit is contained in:
Takashi Kajinami
2023-11-26 20:27:54 +09:00
parent 53198ba274
commit f772e96e12
10 changed files with 90 additions and 81 deletions

View File

@@ -99,7 +99,7 @@ class swift::containerreconciler(
$processes = $facts['os_service_default'], $processes = $facts['os_service_default'],
$reclaim_age = $facts['os_service_default'], $reclaim_age = $facts['os_service_default'],
$request_tries = $facts['os_service_default'], $request_tries = $facts['os_service_default'],
$service_provider = $::swift::params::service_provider, Swift::ServiceProvider $service_provider = $::swift::params::service_provider,
$memcache_servers = ['127.0.0.1:11211'], $memcache_servers = ['127.0.0.1:11211'],
$cache_tls_enabled = $facts['os_service_default'], $cache_tls_enabled = $facts['os_service_default'],
$cache_tls_cafile = $facts['os_service_default'], $cache_tls_cafile = $facts['os_service_default'],
@@ -110,6 +110,10 @@ class swift::containerreconciler(
include swift::deps include swift::deps
Swift_container_reconciler_config<||> ~> Service['swift-container-reconciler'] Swift_container_reconciler_config<||> ~> Service['swift-container-reconciler']
if $pipeline[-1] != 'proxy-server' {
fail('proxy-server must be the last element in pipeline')
}
# only add memcache servers if 'cache' is included in the pipeline # only add memcache servers if 'cache' is included in the pipeline
if !empty(grep(any2array($pipeline), 'cache')) { if !empty(grep(any2array($pipeline), 'cache')) {

View File

@@ -102,10 +102,10 @@
# Defaults to 'LOG_LOCAL2'. # Defaults to 'LOG_LOCAL2'.
# #
class swift::objectexpirer( class swift::objectexpirer(
$manage_service = true, Boolean $manage_service = true,
$enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$pipeline = ['catch_errors', 'proxy-logging', 'cache', 'proxy-server'], Swift::Pipeline $pipeline = ['catch_errors', 'proxy-logging', 'cache', 'proxy-server'],
$concurrency = $facts['os_service_default'], $concurrency = $facts['os_service_default'],
$expiring_objects_account_name = $facts['os_service_default'], $expiring_objects_account_name = $facts['os_service_default'],
$interval = $facts['os_service_default'], $interval = $facts['os_service_default'],
@@ -137,6 +137,10 @@ class swift::objectexpirer(
} }
} }
if $pipeline[-1] != 'proxy-server' {
fail('proxy-server must be the last element in pipeline')
}
# only add memcache servers if 'cache' is included in the pipeline # only add memcache servers if 'cache' is included in the pipeline
if !empty(grep(any2array($pipeline), 'cache')) { if !empty(grep(any2array($pipeline), 'cache')) {

View File

@@ -182,8 +182,8 @@ class swift::proxy(
Boolean $manage_service = true, Boolean $manage_service = true,
Boolean $enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$service_provider = $::swift::params::service_provider, Swift::ServiceProvider $service_provider = $::swift::params::service_provider,
$purge_config = false, Boolean $purge_config = false,
) inherits swift::params { ) inherits swift::params {
include swift::deps include swift::deps

View File

@@ -42,14 +42,14 @@
# (optional) Additional tag to be added to the service resource # (optional) Additional tag to be added to the service resource
# #
define swift::service( define swift::service(
$os_family_service_name, String[1] $os_family_service_name,
$config_file_name, String[1] $config_file_name,
$service_ensure = undef, $service_ensure = undef,
$enabled = true, Boolean $enabled = true,
$service_provider = $::swift::params::service_provider, Swift::ServiceProvider $service_provider = $::swift::params::service_provider,
$service_subscribe = undef, $service_subscribe = undef,
$service_require = undef, $service_require = undef,
$service_tag = undef, Optional[String[1]] $service_tag = undef,
) { ) {
include swift::deps include swift::deps
@@ -72,7 +72,7 @@ define swift::service(
subscribe => $service_subscribe, subscribe => $service_subscribe,
require => $service_require, require => $service_require,
} }
} elsif $service_provider == 'swiftinit' { } else {
service { $name: service { $name:
ensure => $service_ensure, ensure => $service_ensure,
enable => $enabled, enable => $enabled,

View File

@@ -27,11 +27,11 @@
# Defaults to $::swift::params::service_provider. # Defaults to $::swift::params::service_provider.
# #
class swift::storage::account( class swift::storage::account(
$manage_service = true, Boolean $manage_service = true,
$enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$config_file_name = 'account-server.conf', String[1] $config_file_name = 'account-server.conf',
$service_provider = $::swift::params::service_provider Swift::ServiceProvider $service_provider = $::swift::params::service_provider
) inherits swift::params { ) inherits swift::params {
include swift::deps include swift::deps

View File

@@ -32,12 +32,12 @@
# Defaults to $::swift::params::service_provider. # Defaults to $::swift::params::service_provider.
# #
class swift::storage::container( class swift::storage::container(
$manage_service = true, Boolean $manage_service = true,
$enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$allowed_sync_hosts = ['127.0.0.1'], Array[String[1]] $allowed_sync_hosts = ['127.0.0.1'],
$config_file_name = 'container-server.conf', String[1] $config_file_name = 'container-server.conf',
$service_provider = $::swift::params::service_provider Swift::ServiceProvider $service_provider = $::swift::params::service_provider
) inherits swift::params { ) inherits swift::params {
include swift::deps include swift::deps

View File

@@ -121,7 +121,7 @@ class swift::storage::drive_audit(
$log_to_console = $facts['os_service_default'], $log_to_console = $facts['os_service_default'],
$unmount_failed_device = $facts['os_service_default'], $unmount_failed_device = $facts['os_service_default'],
Hash[String[1], String[1]] $regex_pattern = {}, Hash[String[1], String[1]] $regex_pattern = {},
$purge_config = false, Boolean $purge_config = false,
) inherits swift::params { ) inherits swift::params {
include swift::deps include swift::deps

View File

@@ -38,8 +38,8 @@ define swift::storage::generic(
Boolean $manage_service = true, Boolean $manage_service = true,
Boolean $enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$config_file_name = "${name}-server.conf", String[1] $config_file_name = "${name}-server.conf",
$service_provider = $::swift::params::service_provider Swift::ServiceProvider $service_provider = $::swift::params::service_provider
) { ) {
include swift::deps include swift::deps

View File

@@ -27,11 +27,11 @@
# Defaults to $::swift::params::service_provider. # Defaults to $::swift::params::service_provider.
# #
class swift::storage::object( class swift::storage::object(
$manage_service = true, Boolean $manage_service = true,
$enabled = true, Boolean $enabled = true,
$package_ensure = 'present', $package_ensure = 'present',
$config_file_name = 'object-server.conf', String[1] $config_file_name = 'object-server.conf',
$service_provider = $::swift::params::service_provider Swift::ServiceProvider $service_provider = $::swift::params::service_provider
) inherits swift::params { ) inherits swift::params {
include swift::deps include swift::deps

1
types/serviceprovider.pp Normal file
View File

@@ -0,0 +1 @@
type Swift::ServiceProvider = Optional[Enum['swiftinit', 'systemd']]