)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3f3ea37938e60fe8e5b2fecbcb1b728f34e5f5ab","unresolved":false,"context_lines":[{"line_number":11,"context_line":"various parties that adding error codes to structured error responses"},{"line_number":12,"context_line":"should not be considered a breaking API change."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Given that, it is simply \"okay\" to add them. This change adds"},{"line_number":15,"context_line":"errors.CONCURRENT_UPDATE wherever the ConcurrentUpdateDetected results"},{"line_number":16,"context_line":"in an HTTPConflict (409) response."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_6993ff4f","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":44},"updated":"2018-07-11 13:54:44.000000000","message":"Besides, it\u0027s what we agreed upon in the spec.","commit_id":"c5cdef24ed04a138d1005285efc55dffec5265a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3f3ea37938e60fe8e5b2fecbcb1b728f34e5f5ab","unresolved":false,"context_lines":[{"line_number":19,"context_line":"used, there will be a code in any error response, and for some"},{"line_number":20,"context_line":"409 responses that code will be `placement.concurrent_update`."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Note that because we haven\u0027t instrumented a way to cause a truly"},{"line_number":23,"context_line":"concurrent update, we\u0027ve never had real tests for this kind of"},{"line_number":24,"context_line":"thing."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I5a164a0ee298846231113ad7b62b82a3e8f1f409"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f7c97a3_69cbff1c","line":24,"range":{"start_line":22,"start_character":0,"end_line":24,"end_character":6},"updated":"2018-07-11 13:54:44.000000000","message":"This is the case for \"truly concurrent update,\" but for gen conflicts we check in python, we certainly *can* test them.","commit_id":"c5cdef24ed04a138d1005285efc55dffec5265a7"}],"nova/api/openstack/placement/handlers/allocation.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3f3ea37938e60fe8e5b2fecbcb1b728f34e5f5ab","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":413,"context_line":"            _(\u0027Inventory and/or allocations changed while attempting to \u0027"},{"line_number":414,"context_line":"              \u0027allocate: %(error)s\u0027) % {\u0027error\u0027: exc},"},{"line_number":415,"context_line":"              comment\u003derrors.CONCURRENT_UPDATE)"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"    req.response.status \u003d 204"},{"line_number":418,"context_line":"    req.response.content_type \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_a92b5799","line":415,"range":{"start_line":415,"start_character":22,"end_line":415,"end_character":46},"updated":"2018-07-11 13:54:44.000000000","message":"cool","commit_id":"c5cdef24ed04a138d1005285efc55dffec5265a7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3f3ea37938e60fe8e5b2fecbcb1b728f34e5f5ab","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":512,"context_line":"            _(\u0027Inventory and/or allocations changed while attempting to \u0027"},{"line_number":513,"context_line":"              \u0027allocate: %(error)s\u0027) % {\u0027error\u0027: exc},"},{"line_number":514,"context_line":"              comment\u003derrors.CONCURRENT_UPDATE)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    req.response.status \u003d 204"},{"line_number":517,"context_line":"    req.response.content_type \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_893a1be4","line":514,"range":{"start_line":514,"start_character":14,"end_line":514,"end_character":46},"updated":"2018-07-11 13:54:44.000000000","message":"Cool.","commit_id":"c5cdef24ed04a138d1005285efc55dffec5265a7"}]}
