diff options
Diffstat (limited to 'heatclient/exc.py')
-rw-r--r-- | heatclient/exc.py | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/heatclient/exc.py b/heatclient/exc.py index d768fbf..7d32bc1 100644 --- a/heatclient/exc.py +++ b/heatclient/exc.py @@ -34,20 +34,10 @@ class CommunicationError(BaseException): """Unable to communicate with server.""" -class ClientException(Exception): - """DEPRECATED""" - - -class HTTPException(ClientException): +class HTTPException(BaseException): """Base exception for all HTTP-derived exceptions""" code = 'N/A' - def __init__(self, details=None): - self.details = details - - def __str__(self): - return "%s (HTTP %s)" % (self.__class__.__name__, self.code) - class HTTPMultipleChoices(HTTPException): code = 300 @@ -147,10 +137,11 @@ for obj_name in dir(sys.modules[__name__]): _code_map[obj.code] = obj -def from_response(response): +def from_response(response, body_iter): """Return an instance of an HTTPException based on httplib response.""" cls = _code_map.get(response.status, HTTPException) - return cls() + body_str = ''.join([chunk for chunk in body_iter]) + return cls(body_str) class NoTokenLookupException(Exception): |