Last change
on this file since 30903 was 30903, checked in by davidb, 8 years ago |
Vagrant provisioning files for a 4-node Hadoop cluster. See README.txt for more details
|
File size:
1.2 KB
|
Line | |
---|
1 | module Puppet::Parser::Functions
|
---|
2 | newfunction(:pick_default, :type => :rvalue, :doc => <<-EOS
|
---|
3 |
|
---|
4 | This function is similar to a coalesce function in SQL in that it will return
|
---|
5 | the first value in a list of values that is not undefined or an empty string
|
---|
6 | (two things in Puppet that will return a boolean false value). If no value is
|
---|
7 | found, it will return the last argument.
|
---|
8 |
|
---|
9 | Typically, this function is used to check for a value in the Puppet
|
---|
10 | Dashboard/Enterprise Console, and failover to a default value like the
|
---|
11 | following:
|
---|
12 |
|
---|
13 | $real_jenkins_version = pick_default($::jenkins_version, '1.449')
|
---|
14 |
|
---|
15 | The value of $real_jenkins_version will first look for a top-scope variable
|
---|
16 | called 'jenkins_version' (note that parameters set in the Puppet Dashboard/
|
---|
17 | Enterprise Console are brought into Puppet as top-scope variables), and,
|
---|
18 | failing that, will use a default value of 1.449.
|
---|
19 |
|
---|
20 | Note that, contrary to the pick() function, the pick_default does not fail if
|
---|
21 | all arguments are empty. This allows pick_default to use an empty value as
|
---|
22 | default.
|
---|
23 |
|
---|
24 | EOS
|
---|
25 | ) do |args|
|
---|
26 | fail "Must receive at least one argument." if args.empty?
|
---|
27 | default = args.last
|
---|
28 | args = args[0..-2].compact
|
---|
29 | args.delete(:undef)
|
---|
30 | args.delete(:undefined)
|
---|
31 | args.delete("")
|
---|
32 | args << default
|
---|
33 | return args[0]
|
---|
34 | end
|
---|
35 | end
|
---|
Note:
See
TracBrowser
for help on using the repository browser.