summaryrefslogtreecommitdiff
path: root/manifests/classes/lsb_release.pp
blob: 22717b05cd42bcc45b45065e4a1c172b15032b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 of $fqdn")
			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], }
}