Method: Puppet::HTTP::Resolver::SRV#resolve

Defined in:
lib/puppet/http/resolver/srv.rb

#resolve(session, name, ssl_context: nil, canceled_handler: nil) ⇒ Puppet::HTTP::Service

Walk the available srv records and return the first that successfully connects

Parameters:

  • session (Puppet::HTTP::Session)
  • name (Symbol)

    the service being resolved

  • ssl_context (Puppet::SSL::SSLContext) (defaults to: nil)
  • canceled_handler (Proc) (defaults to: nil)

    optional callback allowing a resolver to cancel resolution.

Returns:



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/puppet/http/resolver/srv.rb', line 30

def resolve(session, name, ssl_context: nil, canceled_handler: nil)
  # Here we pass our HTTP service name as the DNS SRV service name
  # This is fine for :ca, but note that :puppet and :file are handled
  # specially in `each_srv_record`.
  @delegate.each_srv_record(@srv_domain, name) do |server, port|
    service = Puppet::HTTP::Service.create_service(@client, session, name, server, port)
    return service if check_connection?(session, service, ssl_context: ssl_context)
  end

  nil
end