class Report::Rest
Public Instance Methods
handle_response(request, response)
click to toggle source
This is called by the superclass when not using our httpclient.
# File lib/puppet/indirector/report/rest.rb 24 def handle_response(request, response) 25 if !response.success? 26 server_version = response[Puppet::Network::HEADER_PUPPET_VERSION] 27 if server_version && 28 SemanticPuppet::Version.parse(server_version).major < Puppet::Indirector::REST::MAJOR_VERSION_JSON_DEFAULT && 29 Puppet[:preferred_serialization_format] != 'pson' 30 format = Puppet[:preferred_serialization_format] 31 raise Puppet::Error.new(_("Server version %{version} does not accept reports in '%{format}', use `preferred_serialization_format=pson`") % {version: server_version, format: format}) 32 end 33 end 34 end
save(request)
click to toggle source
# File lib/puppet/indirector/report/rest.rb 7 def save(request) 8 session = Puppet.lookup(:http_session) 9 api = session.route_to(:report) 10 response = api.put_report( 11 request.key, 12 request.instance, 13 environment: request.environment.to_s 14 ) 15 content_type, body = parse_response(response) 16 deserialize_save(content_type, body) 17 rescue Puppet::HTTP::ResponseError => e 18 return nil if e.response.code == 404 19 20 raise convert_to_http_error(e.response) 21 end
Private Instance Methods
deserialize_save(content_type, body)
click to toggle source
# File lib/puppet/indirector/report/rest.rb 38 def deserialize_save(content_type, body) 39 format = Puppet::Network::FormatHandler.format_for(content_type) 40 format.intern(Array, body) 41 end