Sha256: b939a63291b466eec3574fcbb883d3e1531f21d593bd914b648af3d9cb372c22

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

class Puppet::HTTP::Service
  attr_reader :url

  SERVICE_NAMES = [:ca, :report].freeze

  def self.create_service(client, name, server = nil, port = nil)
    case name
    when :ca
      Puppet::HTTP::Service::Ca.new(client, server, port)
    when :report
      Puppet::HTTP::Service::Report.new(client, server, port)
    else
      raise ArgumentError, "Unknown service #{name}"
    end
  end

  def self.valid_name?(name)
    SERVICE_NAMES.include?(name)
  end

  def initialize(client, url)
    @client = client
    @url = url
  end

  def with_base_url(path)
    u = @url.dup
    u.path += path
    u
  end

  def connect(ssl_context: nil)
    @client.connect(@url, ssl_context: ssl_context)
  end

  protected

  def add_puppet_headers(headers)
    modified_headers = headers.dup
    modified_headers['X-Puppet-Profiling'] = 'true' if Puppet[:profile]
    modified_headers
  end

  def build_url(api, server, port)
    URI::HTTPS.build(host: server,
                     port: port,
                     path: api
                    ).freeze
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
puppet-6.12.0 lib/puppet/http/service.rb
puppet-6.12.0-x86-mingw32 lib/puppet/http/service.rb
puppet-6.12.0-x64-mingw32 lib/puppet/http/service.rb
puppet-6.12.0-universal-darwin lib/puppet/http/service.rb