class Puppet::Indirector::REST

Access objects via REST

Public Instance Methods

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

Private Instance Methods

convert_to_http_error(response) click to toggle source
   # File lib/puppet/indirector/rest.rb
30 def convert_to_http_error(response)
31   if response.body.to_s.empty? && response.reason
32     returned_message = response.reason
33   elsif response['content-type'].is_a?(String)
34     content_type, body = parse_response(response)
35     if content_type =~ /[pj]son/
36       returned_message = Puppet::Util::Json.load(body)["message"]
37     else
38       returned_message = response.body
39     end
40   else
41     returned_message = response.body
42   end
43 
44   message = _("Error %{code} on SERVER: %{returned_message}") % { code: response.code, returned_message: returned_message }
45   Net::HTTPError.new(message, Puppet::HTTP::ResponseConverter.to_ruby_response(response))
46 end
elide(string, length) click to toggle source
   # File lib/puppet/indirector/rest.rb
58 def elide(string, length)
59   if Puppet::Util::Log.level == :debug || string.length <= length
60     string
61   else
62     string[0, length - 3] + "..."
63   end
64 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
50 def parse_response(response)
51   if response['content-type']
52     [ response['content-type'].gsub(/\s*;.*$/,''), response.body ]
53   else
54     raise _("No content type in http response; cannot parse")
55   end
56 end