)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a6c6adbf0b89dafbd6daec54b883c5cd543542b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3c7729c7_5d6151bc","updated":"2026-08-06 06:31:06.000000000","message":"All this talk about OPTIONS and I don\u0027t see a single test for the OPTIONS case:\n```\n$ grep -i options test_versioned_writes.py\n$ \n```\n\nI don\u0027t think its a blocker because this is basically a refactor, and looks like a nice one that cleans stuff up, so the lack of OPTIONS tests pre-existed. So LGTM","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"50459953f12296ec38d4ed2a96898e9c55c6b504","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"28bcbd23_ca754d4b","updated":"2026-08-07 09:39:44.000000000","message":"recheck","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4d5b5be2b2f221a173668b93f9464b62f4863467","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"491535de_21e35690","updated":"2026-08-07 17:31:03.000000000","message":"recheck \n\nhttps://bugs.launchpad.net/cinder/+bug/2163042","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0d2ab7c90e19d42ce074654d918d2ac3f06302db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fb226d16_9318fedc","in_reply_to":"3c7729c7_5d6151bc","updated":"2026-08-06 15:43:52.000000000","message":"I think the test gap existed before - here is a follow up test: \n\n999987: versioning: add OPTIONS coverage for object requests | https://review.opendev.org/c/openstack/swift/+/999987\n\nThe agents also found a bug: https://bugs.launchpad.net/swift/+bug/2162973\n\nPatch itself LGTM - let\u0027s merge it!","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"}],"swift/common/middleware/versioned_writes/object_versioning.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"0d2ab7c90e19d42ce074654d918d2ac3f06302db","unresolved":true,"context_lines":[{"line_number":827,"context_line":"        where version-id is not \u0027null\u0027."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"        :param req: original request."},{"line_number":830,"context_line":"        :param version_id: version to make the latest."},{"line_number":831,"context_line":"        :returns: a callable that implements the wsgi application interface."},{"line_number":832,"context_line":"        \"\"\""},{"line_number":833,"context_line":"        # Re-write the path; most everything else goes through normally"}],"source_content_type":"text/x-python","patch_set":2,"id":"be861475_d660a12c","line":830,"updated":"2026-08-06 15:43:52.000000000","message":"nit: make?","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"e9b128ac3e7c2b4bb52e0956451a0ea4b67762af","unresolved":true,"context_lines":[{"line_number":827,"context_line":"        where version-id is not \u0027null\u0027."},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"        :param req: original request."},{"line_number":830,"context_line":"        :param version_id: version to make the latest."},{"line_number":831,"context_line":"        :returns: a callable that implements the wsgi application interface."},{"line_number":832,"context_line":"        \"\"\""},{"line_number":833,"context_line":"        # Re-write the path; most everything else goes through normally"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c01210a_fa13c779","line":830,"in_reply_to":"be861475_d660a12c","updated":"2026-08-06 15:53:42.000000000","message":":\u0027( I\u0027ve copied that from handle_put_with_version_id :shame:","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a6c6adbf0b89dafbd6daec54b883c5cd543542b8","unresolved":true,"context_lines":[{"line_number":892,"context_line":"        :param version_id: version of the object to act on"},{"line_number":893,"context_line":"        :returns: a callable that implements the wsgi application interface."},{"line_number":894,"context_line":"        \"\"\""},{"line_number":895,"context_line":"        # ?version-id requests are allowed for GET, HEAD, PUT, DELETE reqs"},{"line_number":896,"context_line":"        if req.method \u003d\u003d \u0027POST\u0027:"},{"line_number":897,"context_line":"            raise HTTPBadRequest("},{"line_number":898,"context_line":"                \u0027%s to a specific version is not allowed\u0027 % req.method,"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f8ce3f8_ccc6b5e3","line":895,"updated":"2026-08-06 06:31:06.000000000","message":"Change seems to suggest that OPTIONS too?","commit_id":"6d2855f567754d1326a1f8c6f485d95f6341420c"}]}
