class Puppet::Indirector::REST

Access objects via REST

Public Instance Methods

destroy(request) click to toggle source
   # File lib/puppet/indirector/rest.rb
15 def destroy(request)
16   raise NotImplementedError
17 end
find(request) click to toggle source
  # File lib/puppet/indirector/rest.rb
3 def find(request)
4   raise NotImplementedError
5 end
head(request) click to toggle source
  # File lib/puppet/indirector/rest.rb
7 def head(request)
8   raise NotImplementedError
9 end
save(request) click to toggle source
   # File lib/puppet/indirector/rest.rb
19 def save(request)
20   raise NotImplementedError
21 end
validate_key(request) click to toggle source
   # File lib/puppet/indirector/rest.rb
23 def validate_key(request)
24   # Validation happens on the remote end
25 end

Private Instance Methods

convert_to_http_error(response) click to toggle source
   # File lib/puppet/indirector/rest.rb
29 def convert_to_http_error(response)
30   if response.body.to_s.empty? && response.reason
31     returned_message = response.reason
32   elsif response['content-type'].is_a?(String)
33     content_type, body = parse_response(response)
34     if content_type =~ /[pj]son/
35       returned_message = Puppet::Util::Json.load(body)["message"]
36     else
37       returned_message = response.body
38     end
39   else
40     returned_message = response.body
41   end
42 
43   message = _("Error %{code} on SERVER: %{returned_message}") % { code: response.code, returned_message: returned_message }
44   Net::HTTPError.new(message, Puppet::HTTP::ResponseConverter.to_ruby_response(response))
45 end
elide(string, length) click to toggle source
   # File lib/puppet/indirector/rest.rb
57 def elide(string, length)
58   if Puppet::Util::Log.level == :debug || string.length <= length
59     string
60   else
61     string[0, length - 3] + "..."
62   end
63 end
parse_response(response) click to toggle source

Returns the content_type, stripping any appended charset, and the body, decompressed if necessary

   # File lib/puppet/indirector/rest.rb
49 def parse_response(response)
50   if response['content-type']
51     [ response['content-type'].gsub(/\s*;.*$/,''), response.body ]
52   else
53     raise _("No content type in http response; cannot parse")
54   end
55 end