diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-04-09 21:07:26 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-04-09 21:07:26 +0000 |
commit | c1eac10cc36a2cb612be39819337f0b819f39f58 (patch) | |
tree | 3e0d50560d52506928703c150a53c23a8a6f8322 /keystone/common/wsgi.py | |
parent | e4ec12e8118b92cbad9e2f287f111b6be8bb2705 (diff) | |
parent | 0b4ee31f0f71d62c4955847ec775dc0541e5a2c6 (diff) | |
download | keystone-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.py | 20 |
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): |