From 61ed1b8dbac0017ab785f11cb7ae76638a05196e Mon Sep 17 00:00:00 2001 From: Trey Dockendorf Date: Tue, 23 Oct 2018 09:52:00 -0400 Subject: [PATCH] Add data type for journald_config --- manifests/init.pp | 2 +- types/journaldconfig.pp | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 types/journaldconfig.pp diff --git a/manifests/init.pp b/manifests/init.pp index f3a11b3f..807bb846 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -99,7 +99,7 @@ Hash[String,String] $accounting, Boolean $purge_dropin_dirs, Boolean $manage_journald, - Hash[String[1], String[1]] $journald_config, + Systemd::JournaldConfig $journald_config, ){ contain systemd::systemctl::daemon_reload diff --git a/types/journaldconfig.pp b/types/journaldconfig.pp new file mode 100644 index 00000000..239fe213 --- /dev/null +++ b/types/journaldconfig.pp @@ -0,0 +1,35 @@ +# Matches Systemd journald config Struct +type Systemd::JournaldConfig = Struct[ + { + Optional['Storage'] => Enum['volatile','persistent','auto','none'], + Optional['Compress'] => Variant[Enum['yes','no'], Pattern[/^[0-9]+(K|M|G)?$/]], + Optional['Seal'] => Enum['yes','no'], + Optional['SplitMode'] => Enum['uid','none'], + Optional['RateLimitInterval'] => Pattern[/^[0-9]+(s|min|h|ms|us)?$/], + Optional['RateLimitIntervalSec'] => Pattern[/^[0-9]+(s|min|h|ms|us)?$/], + Optional['RateLimitBurst'] => Variant[Integer[0], Pattern[/^[0-9]+$/]], + Optional['SystemMaxUse'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['SystemKeepFree'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['SystemMaxFileSize'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['SystemMaxFiles'] => Variant[Integer[0], Pattern[/^[0-9]+$/]], + Optional['RuntimeMaxUse'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['RuntimeKeepFree'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['RuntimeMaxFileSize'] => Pattern[/^[0-9]+(K|M|G|T|P|E)?$/], + Optional['RuntimeMaxFiles'] => Variant[Integer[0], Pattern[/^[0-9]+$/]], + Optional['MaxFileSec'] => Pattern[/^[0-9]+(year|month|week|day|h|m)?$/], + Optional['MaxRetentionSec'] => Pattern[/^[0-9]+(year|month|week|day|h|m)?$/], + Optional['SyncIntervalSec'] => Pattern[/^[0-9]+(year|month|week|day|h|m)?$/], + Optional['ForwardToSyslog'] => Enum['yes','no'], + Optional['ForwardToKMsg'] => Enum['yes','no'], + Optional['ForwardToConsole'] => Enum['yes','no'], + Optional['ForwardToWall'] => Enum['yes','no'], + Optional['MaxLevelStore'] => Variant[Enum['emerg','alert','crit','err','warning','notice','info','debug'],Integer[0,7]], + Optional['MaxLevelSyslog'] => Variant[Enum['emerg','alert','crit','err','warning','notice','info','debug'],Integer[0,7]], + Optional['MaxLevelKMsg'] => Variant[Enum['emerg','alert','crit','err','warning','notice','info','debug'],Integer[0,7]], + Optional['MaxLevelConsole'] => Variant[Enum['emerg','alert','crit','err','warning','notice','info','debug'],Integer[0,7]], + Optional['MaxLevelWall'] => Variant[Enum['emerg','alert','crit','err','warning','notice','info','debug'],Integer[0,7]], + Optional['ReadKMsg'] => Enum['yes','no'], + Optional['TTYPath'] => Stdlib::Absolutepath, + Optional['LineMax'] => Pattern[/^[0-9]+(K|M|G|T)?$/], + } +]