class Puppet::Indirector::FileMetadata::Rest
Public Instance Methods
find(request)
click to toggle source
# File lib/puppet/indirector/file_metadata/rest.rb 9 def find(request) 10 url = URI.parse(Puppet::Util.uri_encode(request.uri)) 11 session = Puppet.lookup(:http_session) 12 api = session.route_to(:fileserver, url: url) 13 14 _, file_metadata = api.get_file_metadata( 15 path: Puppet::Util.uri_unescape(url.path), 16 environment: request.environment.to_s, 17 links: request.options[:links], 18 checksum_type: request.options[:checksum_type], 19 source_permissions: request.options[:source_permissions] 20 ) 21 file_metadata 22 rescue Puppet::HTTP::ResponseError => e 23 if e.response.code == 404 24 return nil unless request.options[:fail_on_404] 25 26 _, body = parse_response(e.response) 27 msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body } 28 raise Puppet::Error, msg 29 else 30 raise convert_to_http_error(e.response) 31 end 32 end
search(request)
click to toggle source
# File lib/puppet/indirector/file_metadata/rest.rb 34 def search(request) 35 url = URI.parse(Puppet::Util.uri_encode(request.uri)) 36 session = Puppet.lookup(:http_session) 37 api = session.route_to(:fileserver, url: url) 38 39 _, file_metadatas = api.get_file_metadatas( 40 path: Puppet::Util.uri_unescape(url.path), 41 environment: request.environment.to_s, 42 recurse: request.options[:recurse], 43 recurselimit: request.options[:recurselimit], 44 max_files: request.options[:max_files], 45 ignore: request.options[:ignore], 46 links: request.options[:links], 47 checksum_type: request.options[:checksum_type], 48 source_permissions: request.options[:source_permissions], 49 ) 50 file_metadatas 51 rescue Puppet::HTTP::ResponseError => e 52 # since it's search, return empty array instead of nil 53 return [] if e.response.code == 404 54 55 raise convert_to_http_error(e.response) 56 end