dblessing / rundeck-ruby

Rundeck Ruby Client - A Ruby wrapper around the Rundeck API
http://blessing.io/rundeck-ruby/
BSD 2-Clause "Simplified" License
17 stars 11 forks source link

Exception is Rundeck is unavailable #3

Closed dblessing closed 9 years ago

dblessing commented 10 years ago

If Rundeck server is unavailable and the client hits it HTML is returned. This causes the XML parser to throw up and gives the user a nasty stack trace. We should be able to handle this in a better way - any time HTML or non-XML is returned.

Fatal error: Opening and ending tag mismatch: hr line 5 and body at :6.
Fatal error: Opening and ending tag mismatch: body line 3 and html at :7.
Fatal error: Premature end of data in tag html line 1 at :7.
MultiXml::ParseError: Fatal error: Premature end of data in tag html line 1 at :7.
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb:14:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb:14:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml.rb:138:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:112:in `xml'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:136:in `parse_supported_format'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:103:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:67:in `call'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/request.rb:296:in `parse_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/request.rb:266:in `block in handle_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/response.rb:23:in `call'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/response.rb:23:in `parsed_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:89:in `error_message'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:43:in `validate'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:14:in `get'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/client/keys.rb:16:in `keys'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck.rb:22:in `method_missing'
    from (irb):30
    from /Users/drewb/.rbenv/versions/2.0.0-p247/bin/irb:12:in `<main>'irb(main):031:0> Rundeck.keys
Fatal error: Opening and ending tag mismatch: hr line 5 and body at :6.
Fatal error: Opening and ending tag mismatch: body line 3 and html at :7.
Fatal error: Premature end of data in tag html line 1 at :7.
MultiXml::ParseError: Fatal error: Premature end of data in tag html line 1 at :7.
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb:14:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb:14:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml.rb:138:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:112:in `xml'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:136:in `parse_supported_format'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:103:in `parse'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/parser.rb:67:in `call'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/request.rb:296:in `parse_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/request.rb:266:in `block in handle_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/response.rb:23:in `call'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/httparty-0.13.1/lib/httparty/response.rb:23:in `parsed_response'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:89:in `error_message'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:43:in `validate'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/request.rb:14:in `get'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck/client/keys.rb:16:in `keys'
    from /Users/drewb/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rundeck-0.0.3.pre/lib/rundeck.rb:22:in `method_missing'
    from (irb):31
    from /Users/drewb/.rbenv/versions/2.0.0-p247/bin/irb:12:in `<main>'irb(main):032:0>