Class: Puppet::HTTP::Service Abstract
Overview
Subclass and implement methods for the service’s REST APIs.
Represents an abstract Puppet web service.
Direct Known Subclasses
Defined Under Namespace
Classes: Ca, Compiler, FileServer, Puppetserver, Report
Constant Summary collapse
- SERVICE_NAMES =
Returns available services.
[:ca, :fileserver, :puppet, :puppetserver, :report].freeze
- EXCLUDED_FORMATS =
Returns format types that are unsupported.
[:yaml, :b64_zlib_yaml, :dot].freeze
Instance Attribute Summary collapse
-
#url ⇒ URI
readonly
The url associated with this service.
Class Method Summary collapse
-
.create_service(client, session, name, server = nil, port = nil) ⇒ Puppet::HTTP::Service
private
Create a new web service, which contains the URL used to connect to the service.
-
.valid_name?(name) ⇒ Boolean
private
Check if the service named is included in the list of available services.
Instance Method Summary collapse
-
#connect(ssl_context: nil) ⇒ void
Open a connection using the given ssl context.
-
#initialize(client, session, url) ⇒ Service
constructor
private
Create a new service.
-
#with_base_url(path) ⇒ URI
Return the url with the given path encoded and appended.
Constructor Details
#initialize(client, session, url) ⇒ Service
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Create a new service. Services should be created by calling ‘Puppet::HTTP::Session#route_to`.
69 70 71 72 73 |
# File 'lib/puppet/http/service.rb', line 69 def initialize(client, session, url) @client = client @session = session @url = url end |
Instance Attribute Details
#url ⇒ URI (readonly)
Returns the url associated with this service.
9 10 11 |
# File 'lib/puppet/http/service.rb', line 9 def url @url end |
Class Method Details
.create_service(client, session, name, server = nil, port = nil) ⇒ Puppet::HTTP::Service
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Create a new web service, which contains the URL used to connect to the service. The four services implemented are ‘:ca`, `:fileserver`, `:puppet`, and `:report`.
The ‘:ca` and `:report` services handle certs and reports, respectively. The `:fileserver` service handles puppet file metadata and content requests. And the default service, `:puppet`, handles nodes, facts, and catalogs.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/puppet/http/service.rb', line 34 def self.create_service(client, session, name, server = nil, port = nil) case name when :ca Puppet::HTTP::Service::Ca.new(client, session, server, port) when :fileserver Puppet::HTTP::Service::FileServer.new(client, session, server, port) when :puppet ::Puppet::HTTP::Service::Compiler.new(client, session, server, port) when :puppetserver ::Puppet::HTTP::Service::Puppetserver.new(client, session, server, port) when :report Puppet::HTTP::Service::Report.new(client, session, server, port) else raise ArgumentError, "Unknown service #{name}" end end |
.valid_name?(name) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Check if the service named is included in the list of available services.
58 59 60 |
# File 'lib/puppet/http/service.rb', line 58 def self.valid_name?(name) SERVICE_NAMES.include?(name) end |
Instance Method Details
#connect(ssl_context: nil) ⇒ void
This method returns an undefined value.
Open a connection using the given ssl context.
94 95 96 |
# File 'lib/puppet/http/service.rb', line 94 def connect(ssl_context: nil) @client.connect(@url, options: { ssl_context: ssl_context }) end |
#with_base_url(path) ⇒ URI
Return the url with the given path encoded and appended
82 83 84 85 86 |
# File 'lib/puppet/http/service.rb', line 82 def with_base_url(path) u = @url.dup u.path += Puppet::Util.uri_encode(path) u end |