X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=lib%2Fpuppet%2Fprovider%2Fapt_key%2Fapt_key.rb;fp=lib%2Fpuppet%2Fprovider%2Fapt_key%2Fapt_key.rb;h=115ed316de3288b0e54ea84e27c71fa1dda00320;hb=ea68ea521b8ea0ef460ee639759e76e22a620a7e;hp=56f9a072e518b25c83f06c4a5c846dc7492dbbfe;hpb=4b12e7b33263abffe5f1369b4a73272daf4e5248;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/lib/puppet/provider/apt_key/apt_key.rb b/lib/puppet/provider/apt_key/apt_key.rb index 56f9a07..115ed31 100644 --- a/lib/puppet/provider/apt_key/apt_key.rb +++ b/lib/puppet/provider/apt_key/apt_key.rb @@ -1,7 +1,11 @@ # frozen_string_literal: true require 'open-uri' -require 'net/ftp' +begin + require 'net/ftp' +rescue LoadError + # Ruby 3.0 changed net-ftp to a default gem +end require 'tempfile' Puppet::Type.type(:apt_key).provide(:apt_key) do @@ -124,6 +128,9 @@ Puppet::Type.type(:apt_key).provide(:apt_key) do f.close f else + exceptions = [OpenURI::HTTPError] + exceptions << Net::FTPPermError if defined?(Net::FTPPermError) + begin # Only send basic auth if URL contains userinfo # Some webservers (e.g. Amazon S3) return code 400 if empty basic auth is sent @@ -138,7 +145,7 @@ Puppet::Type.type(:apt_key).provide(:apt_key) do parsed_value.userinfo = '' key = open(parsed_value, http_basic_authentication: user_pass).read end - rescue OpenURI::HTTPError, Net::FTPPermError => e + rescue *exceptions => e raise(_('%{_e} for %{_resource}') % { _e: e.message, _resource: resource[:source] }) rescue SocketError raise(_('could not resolve %{_resource}') % { _resource: resource[:source] })