class Facts::Rest

Public Instance Methods

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