class Facts::Rest

Public Instance Methods

find(request) click to toggle source
   # File lib/puppet/indirector/facts/rest.rb
 8 def find(request)
 9   session = Puppet.lookup(:http_session)
10   api = session.route_to(:puppet)
11   _, facts = api.get_facts(
12     request.key,
13     environment: request.environment.to_s
14   )
15   facts
16 rescue Puppet::HTTP::ResponseError => e
17   if e.response.code == 404
18     return nil unless request.options[:fail_on_404]
19 
20     _, body = parse_response(e.response)
21     msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
22     raise Puppet::Error, msg
23   else
24     raise convert_to_http_error(e.response)
25   end
26 end
save(request) click to toggle source
   # File lib/puppet/indirector/facts/rest.rb
28 def save(request)
29   raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
30 
31   session = Puppet.lookup(:http_session)
32   api = session.route_to(:puppet)
33   api.put_facts(
34     request.key,
35     facts: request.instance,
36     environment: request.environment.to_s
37   )
38 
39   # preserve existing behavior
40   nil
41 rescue Puppet::HTTP::ResponseError => e
42   # always raise even if fail_on_404 is false
43   raise convert_to_http_error(e.response)
44 end