Puppet Function: ucp_join_flags

Defined in:
lib/puppet/parser/functions/ucp_join_flags.rb
Function type:
Ruby 3.x API

Overview

ucp_join_flags()Any

Returns:

  • (Any)


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