Puppet Function: ucp_install_flags

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

Overview

ucp_install_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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/puppet/parser/functions/ucp_install_flags.rb', line 2

newfunction(:ucp_install_flags, :type => :rvalue) do |args|
  opts = args[0] || {}
  flags = []

  if opts['admin_username'].to_s != 'undef'
    flags << "--admin-username '#{opts['admin_username']}'"
  end

  if opts['admin_password'].to_s != 'undef'
    flags << "--admin-password '#{opts['admin_password']}'"
  end

  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['swarm_port'] && opts['swarm_port'].to_s != 'undef'
    flags << "--swarm-port '#{opts['swarm_port']}'"
  end

  if opts['controller_port'] && opts['controller_port'].to_s != 'undef'
    flags << "--controller-port '#{opts['controller_port']}'"
  end

  if opts['preserve_certs']
    flags << '--preserve-certs'
  end

  if opts['external_ca']
    flags << '--external-ucp-ca'
  end

  if opts['swarm_scheduler']
    case opts['swarm_scheduler']
    when 'binpack'
      flags << '--binpack'
    when 'random'
      flags << '--random'
    end
  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-opt '%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