From 15d134d13015b17c48a0e138f01808d9698bbe89 Mon Sep 17 00:00:00 2001 From: Bhuvan Arumugam Date: Sat, 8 Sep 2012 22:59:13 -0700 Subject: [PATCH] Handle "503 Service Unavailable" exception. Bug: 1028799 No traceback, if service is unavailable; error out gracefully. * keystoneclient/exceptions.py ServiceUnavailable: New class to handle 503 status code. Add the new class to list of handled exceptions. Change-Id: I39a8ac594ef922d682731a926be26c8b6f648f9d --- keystoneclient/exceptions.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/keystoneclient/exceptions.py b/keystoneclient/exceptions.py index d01f3d290..f992ff306 100644 --- a/keystoneclient/exceptions.py +++ b/keystoneclient/exceptions.py @@ -95,6 +95,14 @@ class HTTPNotImplemented(ClientException): message = "Not Implemented" +class ServiceUnavailable(ClientException): + """ + HTTP 503 - Service Unavailable: The server is currently unavailable. + """ + http_status = 503 + message = "Service Unavailable" + + # In Python 2.4 Exception is old-style and thus doesn't have a __subclasses__() # so we can do this: # _code_map = dict((c.http_status, c) @@ -106,7 +114,8 @@ _code_map = dict((c.http_status, c) for c in [BadRequest, Forbidden, NotFound, OverLimit, - HTTPNotImplemented]) + HTTPNotImplemented, + ServiceUnavailable]) def from_response(response, body):