Sha256: ce798dc936af21e5f6cb1e4e5712c4d32ce4e0da5816e7819fc80fb75f2b4d33

Contents?: true

Size: 962 Bytes

Versions: 8

Compression:

Stored size: 962 Bytes

Contents

require 'faraday'

module PuppetForge
  module Connection
    # Wrap Faraday connection failures to include the host and optional proxy
    # in use for the failed connection.
    class ConnectionFailure < Faraday::Middleware
      def call(env)
        @app.call(env)
      rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
        baseurl = env[:url].dup
        errmsg = "Unable to connect to %{scheme}://%{host}" % { scheme: baseurl.scheme, host: baseurl.host }
        if proxy = env[:request][:proxy]
          errmsg << " (using proxy %{proxy})" % { proxy: proxy.uri.to_s }
        end
        errmsg << " (for request %{path_query}): %{message}" % { message: e.message, path_query: baseurl.request_uri }
        m = Faraday::ConnectionFailed.new(errmsg)
        m.set_backtrace(e.backtrace)
        raise m
      end
    end
  end
end

Faraday::Middleware.register_middleware(:connection_failure => PuppetForge::Connection::ConnectionFailure)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
puppet_forge-6.0.0 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-5.0.4 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-5.0.3 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-5.0.2 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-5.0.1 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-5.0.0 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-4.1.0 lib/puppet_forge/connection/connection_failure.rb
puppet_forge-4.0.0 lib/puppet_forge/connection/connection_failure.rb