summaryrefslogtreecommitdiff
path: root/manifests/classes/lsb_release.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/classes/lsb_release.pp')
-rw-r--r--manifests/classes/lsb_release.pp30
1 files changed, 30 insertions, 0 deletions
diff --git a/manifests/classes/lsb_release.pp b/manifests/classes/lsb_release.pp
new file mode 100644
index 0000000..8a17872
--- /dev/null
+++ b/manifests/classes/lsb_release.pp
@@ -0,0 +1,30 @@
+# common/manifests/classes/lsb_release.pp -- request the installation of
+# lsb_release to get to lsbdistcodename, which is used throughout the manifests
+#
+# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
+# See LICENSE for the full license granted to you.
+
+# This lightweight class only asserts that $lsbdistcodename is set.
+# If the assertion fails, an error is printed on the server
+#
+# To fail individual resources on a missing lsbdistcodename, require
+# Exec[assert_lsbdistcodename] on the specific resource
+class assert_lsbdistcodename {
+
+ case $lsbdistcodename {
+ '': {
+ err("Please install lsb_release or set facter_lsbdistcodename in the environment")
+ exec { "/bin/false # assert_lsbdistcodename": alias => assert_lsbdistcodename }
+ }
+ default: {
+ exec { "/bin/true # assert_lsbdistcodename": alias => assert_lsbdistcodename }
+ exec { "/bin/true # require_lsbdistcodename": alias => require_lsbdistcodename }
+ }
+ }
+
+}
+
+# To fail the complete compilation, include this class
+class require_lsbdistcodename inherits assert_lsbdistcodename {
+ exec { "/bin/false # require_lsbdistcodename": require => Exec[require_lsbdistcodename], }
+}