diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/classes/lsb_release.pp | 30 | ||||
-rw-r--r-- | manifests/init.pp | 1 |
2 files changed, 31 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], } +} diff --git a/manifests/init.pp b/manifests/init.pp index 90dae0e..3c681d1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,3 +15,4 @@ file { } import "defines/*.pp" +import "classes/*.pp" |