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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/puppet/parser/functions/ucp_join_flags.rb', line 2
newfunction(:ucp_join_flags, :type => :rvalue) do |args|
opts = args[0] || {}
flags = []
if opts['host_address'] && opts['host_address'].to_s != 'undef'
flags << "--host-address '#{opts['host_address']}'"
end
unless opts['tracking']
flags << '--disable-tracking'
end
unless opts['usage']
flags << '--disable-usage'
end
if opts['replica'] == true
flags << '--replica'
end
if opts['version'] && opts['version'].to_s != 'undef'
flags << "--image-version '#{opts['version']}'"
end
if opts['fingerprint'] && opts['fingerprint'].to_s != 'undef'
flags << "--fingerprint '#{opts['fingerprint']}'"
end
if opts['ucp_url'] && opts['ucp_url'].to_s != 'undef'
flags << "--url '#{opts['ucp_url']}'"
end
multi_flags = lambda do |values, format|
filtered = [values].flatten.compact
filtered.map { |val| sprintf(format, val) }
end
[
["--dns '%s'", 'dns_servers'],
["--dns-search '%s'", 'dns_search_domains'],
["--dns-option '%s'", 'dns_options'],
["--san '%s'", 'san'],
].each do |(format, key)|
values = opts[key]
new_flags = multi_flags.call(values, format)
flags.concat(new_flags)
end
opts['extra_parameters'].each do |param|
flags << param
end
flags.flatten.join(" ")
end
|