Exception: Puppet::Forge::Errors::ResponseError

Inherits:
ForgeError show all
Defined in:
lib/puppet/forge/errors.rb

Overview

This exception is raised when there is a bad HTTP response from the forge and optionally a message in the response.

Instance Attribute Summary

Attributes inherited from Error

#original

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ResponseError

Returns a new instance of ResponseError

Options Hash (options):

  • :uri (String)

    The URI that failed

  • :input (String)

    The user's input (e.g. module name)

  • :message (String)

    Error from the API response (optional)

  • :response (Net::HTTPResponse)

    The original HTTP response


78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/puppet/forge/errors.rb', line 78

def initialize(options)
  @uri     = options[:uri]
  @message = options[:message]
  response = options[:response]
  @response = "#{response.code} #{response.message.strip}"

  begin
    body = Puppet::Util::Json.load(response.body)
    if body['message']
      @message ||= body['message'].strip
    end
  rescue Puppet::Util::Json::ParseError
  end

  message = if @message
              _("Request to Puppet Forge failed.") + ' ' + _("Detail: %{detail}.") % { detail: "#{@message} / #{@response}" }
            else
              _("Request to Puppet Forge failed.") + ' ' + _("Detail: %{detail}.") % { detail: @response }
            end
  super(message, original)
end

Instance Method Details

#multilineString

Return a multiline version of the error message


103
104
105
106
107
108
109
110
111
# File 'lib/puppet/forge/errors.rb', line 103

def multiline

  message = []
  message << _('Request to Puppet Forge failed.')
  message << _('  The server being queried was %{uri}') % { uri: @uri }
  message << _("  The HTTP response we received was '%{response}'") % { response: @response }
  message << _("  The message we received said '%{message}'") % { message: @message } if @message
  message.join("\n")
end