summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge L. Williams <jorge.williams@rackspace.com>2011-04-21 21:28:21 -0500
committerJorge L. Williams <jorge.williams@rackspace.com>2011-04-21 21:28:21 -0500
commitf9689fc6fa0321223c0fc09ec91dc82e59eea8b0 (patch)
tree8f621aad9f482f8a08ece8c11774fe8cd5c3c933
parent7eda7dd088e490d3dfff3498fc8fbd88a6df671e (diff)
downloadkeystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.tar.gz
keystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.tar.xz
keystone-f9689fc6fa0321223c0fc09ec91dc82e59eea8b0.zip
Better error handling.
-rw-r--r--keystone/identity2.py18
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)