summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/init.pp38
-rw-r--r--manifests/setup.pp32
2 files changed, 70 insertions, 0 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000..313c1fd
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,38 @@
+# @summary Enable a pre-existing periodic rule
+# @param value
+# Target value for parameter.
+# Strings will be double quoted, meaning that shell expansions will
+# be done in them at the time of use. Integers will be interpreted
+# inserted literally.
+#
+# This is most often set to "YES" or "NO"
+#
+# @param key
+# The actually name to set. Valid values depen on available
+# periodic files.
+# @param ensure
+# Should the resource be added or removed.
+# Note that if `periodic::setup::purge` is true then simply removing
+# the puppet declaratipurges the rule.
+define periodic (
+ Variant[String, Integer] $value,
+ String $key = $name,
+ Enum['present', 'absent'] $ensure = 'present',
+) {
+ include periodic::setup
+
+ $file = "${periodic::setup::periodic_dir}/${key}${periodic::setup::suffix}"
+
+ $value_ = $value ? {
+ Integer => $value,
+ String => "\"${value}\"",
+ }
+
+ file { $file:
+ ensure => $ensure,
+ contents => epp("${module_name}/periodic-entry", {
+ key => $key,
+ value => $value_
+ }),
+ }
+}
diff --git a/manifests/setup.pp b/manifests/setup.pp
new file mode 100644
index 0000000..4715fb6
--- /dev/null
+++ b/manifests/setup.pp
@@ -0,0 +1,32 @@
+# @summary Prepare for periodic rules to be loaded.
+#
+# @param periodic_dir
+# Directory in which periodic rules should be kept
+# @param purge
+# Should the periodic directory be purged.
+# This means that unreferenced files will be deleted.
+# @param suffix
+# Suffix of all "active" files in the periodic dir.
+# @param ensure
+# Should the periodic dir be enabled.
+class periodic::setup (
+ Stdlib::Path $periodic_dir = '/usr/local/etc/periodic.conf.d',
+ Boolean $purge = true,
+ String $suffix = '.periodic',
+ Enum['present', 'absent'] $ensure = 'present',
+) {
+ $content = @("EOF"/$)
+ periodic_conf_files="${periodic_dir}/*${suffix} \${periodic_conf_files}"
+ | EOF
+
+ file_line { 'Periodic - Enable sourcing of files in directory':
+ ensure => $ensure,
+ path => '/etc/periodic.conf',
+ line => $content,
+ }
+
+ file { $periodic_dir:
+ ensure => if $ensure == 'present' { 'directory' } else { 'absent' },
+ purge => $purge,
+ }
+}