dev/provisioning/modules/yum/manifests/config.pp
changeset 28 b0b56e0f8c7f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/yum/manifests/config.pp	Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,46 @@
+# Define: yum::config
+#
+# This definition manages yum.conf
+#
+# Parameters:
+#   [*key*]      - alternative conf. key (defaults to name)
+#   [*ensure*]   - specifies value or absent keyword
+#   [*section*]  - config section (default to main)
+#
+# Actions:
+#
+# Requires:
+#   RPM based system
+#
+# Sample usage:
+#   yum::config { 'installonly_limit':
+#     ensure => 2,
+#   }
+#
+#   yum::config { 'debuglevel':
+#     ensure => absent,
+#   }
+#
+define yum::config (
+  $ensure,
+  $key     = $title,
+  $section = 'main'
+) {
+  validate_string($key, $section)
+
+  unless is_integer($ensure) {
+    validate_string($ensure)
+  }
+
+  $_changes = $ensure ? {
+    absent  => "rm  ${key}",
+    default => "set ${key} ${ensure}",
+  }
+
+  augeas { "yum.conf_${section}_${key}":
+    incl    => '/etc/yum.conf',
+    lens    => 'Yum.lns',
+    context => "/files/etc/yum.conf/${section}/",
+    changes => $_changes,
+  }
+}