Sha256: 98dcc5ec1d122928e691ae46760c305e4483cd086218db411fb52dcbb7f4a85e

Contents?: true

Size: 1.65 KB

Versions: 56

Compression:

Stored size: 1.65 KB

Contents

#
# @api private
#
# 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.
#
class Puppet::HTTP::Resolver
  #
  # @api private
  #
  # Create a new resolver
  #
  # @param [Puppet::HTTP::Client] client
  #
  def initialize(client)
    @client = client
  end

  #
  # @api private
  #
  # 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
  #
  def resolve(session, name, ssl_context: nil, canceled_handler: nil)
    raise NotImplementedError
  end

  #
  # @api private
  #
  # 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
  #
  def check_connection?(session, service, ssl_context: nil)
    service.connect(ssl_context: ssl_context)
    return true
  rescue Puppet::HTTP::ConnectionError => e
    Puppet.log_exception(e, "Connection to #{service.url} failed, trying next route: #{e.message}")
    return false
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
puppet-6.29.0 lib/puppet/http/resolver.rb
puppet-6.29.0-x86-mingw32 lib/puppet/http/resolver.rb
puppet-6.29.0-x64-mingw32 lib/puppet/http/resolver.rb
puppet-6.29.0-universal-darwin lib/puppet/http/resolver.rb
puppet-6.28.0 lib/puppet/http/resolver.rb
puppet-6.28.0-x86-mingw32 lib/puppet/http/resolver.rb
puppet-6.28.0-x64-mingw32 lib/puppet/http/resolver.rb
puppet-6.28.0-universal-darwin lib/puppet/http/resolver.rb
puppet-6.27.0 lib/puppet/http/resolver.rb
puppet-6.27.0-x86-mingw32 lib/puppet/http/resolver.rb
puppet-6.27.0-x64-mingw32 lib/puppet/http/resolver.rb
puppet-6.27.0-universal-darwin lib/puppet/http/resolver.rb
puppet-6.26.0 lib/puppet/http/resolver.rb
puppet-6.26.0-x86-mingw32 lib/puppet/http/resolver.rb
puppet-6.26.0-x64-mingw32 lib/puppet/http/resolver.rb
puppet-6.26.0-universal-darwin lib/puppet/http/resolver.rb
puppet-6.25.1 lib/puppet/http/resolver.rb
puppet-6.25.1-x86-mingw32 lib/puppet/http/resolver.rb
puppet-6.25.1-x64-mingw32 lib/puppet/http/resolver.rb
puppet-6.25.1-universal-darwin lib/puppet/http/resolver.rb