Reviewed: https://review.openstack.org/518223 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=f269023c49dcf24fd42a4933fc7d31f3aaa2e64d Submitter: Zuul Branch: master
commit f269023c49dcf24fd42a4933fc7d31f3aaa2e64d Author: Chris Dent <cd...@anticdent.org> Date: Tue Nov 7 15:25:31 2017 +1100 [placement] set accept to application/json if accept not set If an incoming request to placement does not set the accept header force it to 'application/json'. This not only ensures that error responses are in JSON but also that errors early in the middleware stack do not cause a key error (see the #1724065 bug). This fix is done by checking headers early in the middleware stack using the requestlog middleware as a convenient place to do the check. This overloads requestlog's purpose, but avoids adding yet more middleware (doing so has some small impact per request). Fixing bug 1724065 fixes a 500. Fixing bug 1674694 changes (for some requests) the content type of the bodies of 400-499 responses. This creates a bit of quandry for microversion handling. If a microversion is considered required here then it's not clear the global fix is worth doing and the 500 fix should be limited the microversion middleware. The intent all along has been that responses should strive to align with the API-WG errors guideline [1], which assumes application/json. [1] http://specs.openstack.org/openstack/api-wg/guidelines/errors.html Change-Id: Ice27c7080fc2df097cb387f7438c0aaf32b4c63d Closes-Bug: #1724065 Closes-Bug: #1674694 ** Changed in: nova Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1724065 Title: Requesting an out of range microversion without an accept header in placement results in a KeyError Status in OpenStack Compute (nova): Fix Released Bug description: If the placement service (as of microversion 1.10) if you request a microversion that is outside the acceptable range of VERSIONS and do _not_ include an 'Accept' header in the request, there is a 500 and a KeyError while webob tries to look up the Accept header. The issue is in FaultWrapper, so the problem can be dealt with elsewhere in placement WSGI stack. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1724065/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp