When requesting a resource which does not exist and expecting a 404 Keystone returns a 500 with a stack trace. This happens when the request 'accept' header is set as 'application/xml'
curl localhost:5000/v2.0/someting -v -H "accept:application/xml"
* About to connect() to localhost port 5000 (#0)
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET /v2.0/someting HTTP/1.1
> User-Agent: curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
> Host: localhost:5000
> accept:application/xml
>
< HTTP/1.1 500 Internal Server Error
< Content-Type: text/plain
< Content-Length: 2447
< Date: Wed, 10 Oct 2012 19:37:24 GMT
< Connection: close
<
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/eventlet/wsgi.py", line 382, in handle_one_response
result = self.application(self.environ, start_response)
File "/usr/local/lib/python2.6/dist-packages/paste/urlmap.py", line 203, in __call__
return app(environ, start_response)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 147, in __call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 208, in call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/keystone-2013.1-py2.6.egg/keystone/common/wsgi.py", line 323, in __call__
response = request.get_response(self.application)
File "/usr/local/lib/python2.6/dist-packages/webob/request.py", line 1053, in get_response
application, catch_exc_info=False)
File "/usr/local/lib/python2.6/dist-packages/webob/request.py", line 1022, in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 147, in __call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 208, in call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/keystone-2013.1-py2.6.egg/keystone/common/wsgi.py", line 323, in __call__
response = request.get_response(self.application)
File "/usr/local/lib/python2.6/dist-packages/webob/request.py", line 1053, in get_response
application, catch_exc_info=False)
File "/usr/local/lib/python2.6/dist-packages/webob/request.py", line 1022, in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 147, in __call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.6/dist-packages/webob/dec.py", line 208, in call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/keystone-2013.1-py2.6.egg/keystone/common/wsgi.py", line 324, in __call__
return self.process_response(request, response)
File "/usr/local/lib/python2.6/dist-packages/keystone-2013.1-py2.6.egg/keystone/middleware/core.py", line 151, in process_response
raise exception.Error(message=response.body)
Error: 404 Not Found The resource could not be found.
Fix proposed to branch: master /review. openstack. org/14519
Review: https:/