Module: Puppet::Util::Connection

Defined in:
lib/puppet/util/connection.rb

Class Method Summary collapse

Class Method Details

.determine_port(port_setting, server_setting) ⇒ String

Determines which port to use based on the specified setting, taking into account HA fallback from server_list. For port there’s a little bit of an extra snag: setting a specific server setting and relying on the default port for that server is common, so we also want to check if the assocaited SERVER setting has been set by the user. If either of those are set we ignore the failover-selected port.

Parameters:

  • port_setting (Symbol)

    The preferred port setting to use

  • server_setting (Symbol)

    The server setting assoicated with this route.

Returns:

  • (String)

    the port to use for use in the request



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/util/connection.rb', line 51

def self.determine_port(port_setting, server_setting)
  if (port_setting && port_setting != :masterport && Puppet.settings.set_by_config?(port_setting)) ||
     (server_setting && server_setting != :server && Puppet.settings.set_by_config?(server_setting))
    Puppet.settings[port_setting].to_i
  else
    port = Puppet.lookup(:serverport) do
      if primary_server = Puppet.settings[:server_list][0]
        Puppet.debug "Dynamically-bound port lookup failed; using first entry"

        # Port might not be set, so we want to fallback in that
        # case. We know we don't need to use `setting` here, since
        # the default value of every port setting is `masterport`
        (primary_server[1] || Puppet.settings[:masterport])
      else
        port_setting ||= :masterport
        Puppet.debug "Dynamically-bound port lookup failed; falling back to #{port_setting} setting"
        Puppet.settings[port_setting]
      end
    end
    port.to_i
  end
end

.determine_server(setting) ⇒ String

Determines which server to use based on the specified setting, taking into account HA fallback from server_list.

Parameters:

  • setting (Symbol)

    The preferred server setting to use

Returns:

  • (String)

    the name of the server for use in the request



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/puppet/util/connection.rb', line 23

def self.determine_server(setting)
  if setting && setting != :server && Puppet.settings.set_by_config?(setting)
    Puppet[setting]
  else
    server = Puppet.lookup(:server) do
      if primary_server = Puppet.settings[:server_list][0]
        Puppet.debug "Dynamically-bound server lookup failed; using first entry"
        primary_server[0]
      else
        setting ||= :server
        Puppet.debug "Dynamically-bound server lookup failed, falling back to #{setting} setting"
        Puppet.settings[setting]
      end
    end
    server
  end
end