summaryrefslogtreecommitdiff
path: root/novaclient/exceptions.py
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2013-04-29 11:34:24 -0700
committerBrian Waldon <bcwaldon@gmail.com>2013-04-29 13:47:57 -0700
commiteae3d724c08b7bf13ef2ae5588fc0df4cbcc271c (patch)
tree40e317203bec7feaebd61c52f2e5e72b81c6e32f /novaclient/exceptions.py
parent201b74b6cc4e458d3b19a948352952e53048b79f (diff)
downloadpython-novaclient-eae3d724c08b7bf13ef2ae5588fc0df4cbcc271c.tar.gz
Expose retry_after attribute of OverLimit exception
Fixes bug 1174469 Change-Id: Ic1e67f6f91d4fe2072ff68dfb36330cd86c1d5b4
Diffstat (limited to 'novaclient/exceptions.py')
-rw-r--r--novaclient/exceptions.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/novaclient/exceptions.py b/novaclient/exceptions.py
index 958f0bc1..b331c3c0 100644
--- a/novaclient/exceptions.py
+++ b/novaclient/exceptions.py
@@ -123,6 +123,14 @@ class OverLimit(ClientException):
http_status = 413
message = "Over limit"
+ def __init__(self, *args, **kwargs):
+ try:
+ self.retry_after = int(kwargs.pop('retry_after'))
+ except (KeyError, ValueError):
+ self.retry_after = 0
+
+ super(OverLimit, self).__init__(*args, **kwargs)
+
# NotImplemented is a python keyword.
class HTTPNotImplemented(ClientException):
@@ -164,6 +172,9 @@ def from_response(response, body, url, method=None):
if response.headers:
kwargs['request_id'] = response.headers.get('x-compute-request-id')
+ if 'retry-after' in response.headers:
+ kwargs['retry_after'] = response.headers.get('retry-after')
+
if body:
message = "n/a"
details = "n/a"