ManageIQ / manageiq-api-client

Ruby client library to the ManageIQ REST API
MIT License
11 stars 26 forks source link

Raise exceptions on empty responses #121

Closed kbrock closed 7 months ago

kbrock commented 7 months ago

Before

If connecting to a host and a firewall blocks the message, The message would be empty and this would throw a strange exception.

lib/manageiq/api/client/connection.rb:112:in `raise': exception class/object expected (TypeError)
  raise @error.message
        ^^^^^^^^^^^^^^
    from lib/manageiq/api/client/connection.rb:112:in `check_response'
    from lib/manageiq/api/client/connection.rb:103:in `send_request'
    from lib/manageiq/api/client/connection.rb:24:in `get'
    from lib/manageiq/api/client/client.rb:37:in `load_definitions'
    from lib/manageiq/api/client/client.rb:62:in `reconnect'
    from lib/manageiq/api/client/client.rb:33:in `initialize'

After

If the message is empty, give some message and raise original exception

lib/manageiq/api/client/connection.rb:114:in `check_response': Empty Response (ManageIQ::API::Client::Exception)
    from lib/manageiq/api/client/connection.rb:105:in `send_request'
    from lib/manageiq/api/client/connection.rb:26:in `get'
    from lib/manageiq/api/client/client.rb:38:in `load_definitions'
    from lib/manageiq/api/client/client.rb:63:in `reconnect'
    from lib/manageiq/api/client/client.rb:34:in `initialize'
    from ./list-providers.rb:18:in `new'
    from ./list-providers.rb:18:in `<main>'