summaryrefslogtreecommitdiff
path: root/heatclient/exc.py
diff options
context:
space:
mode:
authorBartlomiej Biernacki <pax0r@o2.pl>2015-11-12 09:43:23 +0100
committerBartlomiej Biernacki <pax0r@o2.pl>2015-11-12 09:43:23 +0100
commit11dfd95c469eea456841a9f6c7e04f34d62077c2 (patch)
tree5deddc3e556d6a6ee0844009d592595fdc92e944 /heatclient/exc.py
parent5aeaf3d57bf8dae3acefe605486b6d8afaeed738 (diff)
downloadpython-heatclient-11dfd95c469eea456841a9f6c7e04f34d62077c2.tar.gz
Fill status code for every HTTPException
Change-Id: Ib73398f0a555c9ac4534fd3ce4a1c06e51bc5962 Closes-Bug: #1515519
Diffstat (limited to 'heatclient/exc.py')
-rw-r--r--heatclient/exc.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/heatclient/exc.py b/heatclient/exc.py
index 4f8a062..d42ca0d 100644
--- a/heatclient/exc.py
+++ b/heatclient/exc.py
@@ -44,7 +44,7 @@ class HTTPException(BaseException):
"""Base exception for all HTTP-derived exceptions."""
code = 'N/A'
- def __init__(self, message=None):
+ def __init__(self, message=None, code=None):
super(HTTPException, self).__init__(message)
try:
self.error = jsonutils.loads(message)
@@ -59,6 +59,8 @@ class HTTPException(BaseException):
except Exception:
self.error = {'error':
{'message': self.message or self.__class__.__doc__}}
+ if self.code == "N/A" and code is not None:
+ self.code = code
def __str__(self):
message = self.error['error'].get('message', 'Internal Error')
@@ -179,7 +181,7 @@ for obj_name in dir(sys.modules[__name__]):
def from_response(response):
"""Return an instance of an HTTPException based on requests response."""
cls = _code_map.get(response.status_code, HTTPException)
- return cls(response.content)
+ return cls(response.content, response.status_code)
class NoTokenLookupException(Exception):