class Catalog::Rest
Public Instance Methods
find(request)
click to toggle source
# File lib/puppet/indirector/catalog/rest.rb 7 def find(request) 8 checksum_type = if request.options[:checksum_type] 9 request.options[:checksum_type].split('.') 10 else 11 Puppet[:supported_checksum_types] 12 end 13 14 session = Puppet.lookup(:http_session) 15 api = session.route_to(:puppet) 16 _, catalog = api.post_catalog( 17 request.key, 18 facts: request.options[:facts_for_catalog], 19 environment: request.environment.to_s, 20 configured_environment: request.options[:configured_environment], 21 check_environment: request.options[:check_environment], 22 transaction_uuid: request.options[:transaction_uuid], 23 job_uuid: request.options[:job_id], 24 static_catalog: request.options[:static_catalog], 25 checksum_type: checksum_type 26 ) 27 catalog 28 rescue Puppet::HTTP::ResponseError => e 29 if e.response.code == 404 30 return nil unless request.options[:fail_on_404] 31 32 _, body = parse_response(e.response) 33 msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body } 34 raise Puppet::Error, msg 35 else 36 raise convert_to_http_error(e.response) 37 end 38 end