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.

Parameters:

  • options (Hash)

    a customizable set of options

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
# 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 = JSON.parse(response.body)
    if body['message']
      @message ||= body['message'].strip
    end
  rescue JSON::ParserError
  end

  message = _("Request to Puppet Forge failed. Detail: ")
  message << @message << " / " if @message
  message << @response << "."
  super(message, original)
end

Instance Method Details

#multilineString

Return a multiline version of the error message

Returns:

  • (String)

    the multiline version of the error message



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

def multiline
  message = _(<<-EOS).chomp % { uri: @uri, response: @response }
Request to Puppet Forge failed.
  The server being queried was %{uri}
  The HTTP response we received was '%{response}'
  EOS
  message << _("\n  The message we received said '%{message}'") % { message: @message } if @message
  message
end