summaryrefslogtreecommitdiff
path: root/heatclient/exc.py
diff options
context:
space:
mode:
Diffstat (limited to 'heatclient/exc.py')
-rw-r--r--heatclient/exc.py17
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):