rackerlabs/otter — pull request #606 by manishtomar (2014-04-14 05:02:09+00:00)
Title: Structured UpstreamError logging (no tests - need review) 

Having an `UpstreamError` class that wraps all possible upstream system errors. It has `details()` method that returns a `dict` of all contents in it. This `dict` is used when logging launch and delete failures. This has 2 benefits:
* The launch/delete failure messages will be short: `"Launching server failed: nova error: 403 - Not allowed to boot from requested image"`
* The err log messages will have structured information that will allow error dashboards to be created easily.