summaryrefslogtreecommitdiffstats
path: root/keystone/common/wsgi.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-04-09 21:07:26 +0000
committerGerrit Code Review <review@openstack.org>2013-04-09 21:07:26 +0000
commitc1eac10cc36a2cb612be39819337f0b819f39f58 (patch)
tree3e0d50560d52506928703c150a53c23a8a6f8322 /keystone/common/wsgi.py
parente4ec12e8118b92cbad9e2f287f111b6be8bb2705 (diff)
parent0b4ee31f0f71d62c4955847ec775dc0541e5a2c6 (diff)
downloadkeystone-c1eac10cc36a2cb612be39819337f0b819f39f58.tar.gz
keystone-c1eac10cc36a2cb612be39819337f0b819f39f58.tar.xz
keystone-c1eac10cc36a2cb612be39819337f0b819f39f58.zip
Merge "catch errors in wsgi.Middleware."
Diffstat (limited to 'keystone/common/wsgi.py')
-rw-r--r--keystone/common/wsgi.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py
index ac91a6a1..018041d7 100644
--- a/keystone/common/wsgi.py
+++ b/keystone/common/wsgi.py
@@ -362,11 +362,21 @@ class Middleware(Application):
@webob.dec.wsgify(RequestClass=Request)
def __call__(self, request):
- response = self.process_request(request)
- if response:
- return response
- response = request.get_response(self.application)
- return self.process_response(request, response)
+ try:
+ response = self.process_request(request)
+ if response:
+ return response
+ response = request.get_response(self.application)
+ return self.process_response(request, response)
+ except exception.Error as e:
+ LOG.warning(e)
+ return render_exception(e)
+ except TypeError as e:
+ LOG.exception(e)
+ return render_exception(exception.ValidationError(e))
+ except Exception as e:
+ LOG.exception(e)
+ return render_exception(exception.UnexpectedError(exception=e))
class Debug(Middleware):