diff options
| author | Jorge L. Williams <jorge.williams@rackspace.com> | 2011-04-21 21:28:21 -0500 |
|---|---|---|
| committer | Jorge L. Williams <jorge.williams@rackspace.com> | 2011-04-21 21:28:21 -0500 |
| commit | f9689fc6fa0321223c0fc09ec91dc82e59eea8b0 (patch) | |
| tree | 8f621aad9f482f8a08ece8c11774fe8cd5c3c933 | |
| parent | 7eda7dd088e490d3dfff3498fc8fbd88a6df671e (diff) | |
| download | keystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.tar.gz keystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.tar.xz keystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.zip | |
Better error handling.
| -rw-r--r-- | keystone/identity2.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/keystone/identity2.py b/keystone/identity2.py index 4349923b..22191e9d 100644 --- a/keystone/identity2.py +++ b/keystone/identity2.py @@ -21,6 +21,7 @@ from bottle import run from bottle import request from bottle import response from bottle import abort +from bottle import error import keystone.logic.service as serv import keystone.logic.types.auth as auth @@ -31,6 +32,19 @@ bottle.debug(True) service = serv.IDMService() +## +## Override error pages +## +@error(400) +@error(401) +@error(403) +@error(404) +@error(409) +@error(500) +@error(503) +def error_handler(err): + return err.output + def is_xml_response(): if not "Accept" in request.header: return False @@ -44,6 +58,8 @@ def send_result(result, code=500): ret = result.to_json() response.content_type = "application/json" response.status = code + if code > 399: + return abort (code, ret) return ret def send_error(error): @@ -65,7 +81,7 @@ def validate_token(token_id): auth_token = None if "X-Auth-Token" in request.header: auth_token = request.header["X-Auth-Token"] - return send_result (service.validate_token(auth_token, token_id, belongs_to)) + return send_result (service.validate_token(auth_token, token_id, belongs_to), 200) except Exception as e: return send_error (e) |
