Sha256: 95387ef6d34d0deb984bf7fe01eb2983ba06e9ba3163bac792a45a676a6ca9a9

Contents?: true

Size: 1.42 KB

Versions: 8

Compression:

Stored size: 1.42 KB

Contents

class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
  HEADERS = { 'Accept' => 'text/plain' }.freeze
  API = '/puppet-ca/v1'.freeze

  def initialize(client, server, port)
    url = build_url(API, server || Puppet[:ca_server], port || Puppet[:ca_port])
    super(client, url)
  end

  def get_certificate(name, ssl_context: nil)
    response = @client.get(
      with_base_url("/certificate/#{name}"),
      headers: add_puppet_headers(HEADERS),
      ssl_context: ssl_context
    )

    return response.body.to_s if response.success?

    raise Puppet::HTTP::ResponseError.new(response)
  end

  def get_certificate_revocation_list(if_modified_since: nil, ssl_context: nil)
    headers = add_puppet_headers(HEADERS)
    headers['If-Modified-Since'] = if_modified_since.httpdate if if_modified_since

    response = @client.get(
      with_base_url("/certificate_revocation_list/ca"),
      headers: headers,
      ssl_context: ssl_context
    )

    return response.body.to_s if response.success?

    raise Puppet::HTTP::ResponseError.new(response)
  end

  def put_certificate_request(name, csr, ssl_context: nil)
    response = @client.put(
      with_base_url("/certificate_request/#{name}"),
      headers: add_puppet_headers(HEADERS),
      content_type: 'text/plain',
      body: csr.to_pem,
      ssl_context: ssl_context
    )

    return response.body.to_s if response.success?

    raise Puppet::HTTP::ResponseError.new(response)
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

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