class Puppet::HTTP::Resolver
Resolver
base class. Each resolver represents a different strategy for resolving a service name into a list of candidate servers and ports.
@abstract Subclass and override {#resolve} to create a new resolver. @api public
Public Class Methods
Create a new resolver.
@param [Puppet::HTTP::Client] client
# File lib/puppet/http/resolver.rb 11 def initialize(client) 12 @client = client 13 end
Public Instance Methods
Check a given connection to establish if it can be relied on for future use.
@param [Puppet::HTTP::Session] session @param [Puppet::HTTP::Service] service @param [Puppet::SSL::SSLContext] ssl_context
@return [Boolean] Returns true if a connection is successful, false otherwise
@api public
# File lib/puppet/http/resolver.rb 41 def check_connection?(session, service, ssl_context: nil) 42 service.connect(ssl_context: ssl_context) 43 return true 44 rescue Puppet::HTTP::ConnectionError => e 45 Puppet.log_exception(e, "Connection to #{service.url} failed, trying next route: #{e.message}") 46 return false 47 end
Return a working server/port for the resolver. This is the base implementation and is meant to be a placeholder.
@param [Puppet::HTTP::Session] session @param [Symbol] name the service to resolve @param [Puppet::SSL::SSLContext] ssl_context (nil) optional ssl context to
use when creating a connection
@param [Proc] canceled_handler (nil) optional callback allowing a resolver
to cancel resolution.
@raise [NotImplementedError] this base class is not implemented
@api public
# File lib/puppet/http/resolver.rb 28 def resolve(session, name, ssl_context: nil, canceled_handler: nil) 29 raise NotImplementedError 30 end