)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"5a5be6f0fa88ba36db513d7844c17cd0506db66f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"29aa229e_ea253292","updated":"2024-01-26 17:48:05.000000000","message":"AWS S3 response differs from the swift partnumber patch","commit_id":"3d697c36be3e4bfbec0420a0455d8544f2a2e826"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"b5b8248dacb4810d10654be7987db108cf05469c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"94ec0c96_433f3888","updated":"2024-02-21 19:12:14.000000000","message":"recheck","commit_id":"c36e6197e9774888d6e671fb0dde8e7ce7f7da2a"}],"swift/common/middleware/s3api/controllers/obj.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6bf23939f0be20c294b584b5ec12343b6a3f7bf5","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        part_number \u003d req.params.get(\u0027partNumber\u0027)"},{"line_number":91,"context_line":"        if part_number and req.range:"},{"line_number":92,"context_line":"            raise InvalidRequest(\u0027Cannot specify both Range header and \u0027"},{"line_number":93,"context_line":"                                 \u0027partNumber query parameter\u0027)"},{"line_number":94,"context_line":"        if version_id not in (\u0027null\u0027, None) and \\"},{"line_number":95,"context_line":"                \u0027object_versioning\u0027 not in get_swift_info():"},{"line_number":96,"context_line":"            raise S3NotImplemented()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7e2bace0_7c336f11","line":93,"updated":"2024-02-02 12:12:44.000000000","message":"I think we could roll this into req.validate_part_number so we have all the error handling in one place","commit_id":"6c8d82d6f4b03f684841d309173d6119ece1cc8b"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"ac85df8056f9fe05ad81d4e58035e3b14e650c00","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        part_number \u003d req.params.get(\u0027partNumber\u0027)"},{"line_number":91,"context_line":"        if part_number and req.range:"},{"line_number":92,"context_line":"            raise InvalidRequest(\u0027Cannot specify both Range header and \u0027"},{"line_number":93,"context_line":"                                 \u0027partNumber query parameter\u0027)"},{"line_number":94,"context_line":"        if version_id not in (\u0027null\u0027, None) and \\"},{"line_number":95,"context_line":"                \u0027object_versioning\u0027 not in get_swift_info():"},{"line_number":96,"context_line":"            raise S3NotImplemented()"}],"source_content_type":"text/x-python","patch_set":2,"id":"cb34059b_1c69014a","line":93,"in_reply_to":"7e2bace0_7c336f11","updated":"2024-02-20 21:20:29.000000000","message":"Done","commit_id":"6c8d82d6f4b03f684841d309173d6119ece1cc8b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c370c1df9d9600b62154643feb4066efcac21d0c","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        if version_id not in (\u0027null\u0027, None) and \\"},{"line_number":91,"context_line":"                \u0027object_versioning\u0027 not in get_swift_info():"},{"line_number":92,"context_line":"            raise S3NotImplemented()"},{"line_number":93,"context_line":"        part_number \u003d req.validate_part_number(check_max\u003dFalse)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        query \u003d {}"},{"line_number":96,"context_line":"        if version_id is not None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"0d3285b3_52f6aea9","line":93,"updated":"2024-02-28 14:23:42.000000000","message":"this is the significant change that does early partNumber on GET/HEAD checking rather than delegate to SLO","commit_id":"a37f0bc6c174412e48a5255e47b7e28bcff1e984"}],"swift/common/middleware/s3api/utils.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"f09f14103315a07f999e9c5f12a2a782e3afd286","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        \u0027allow_no_owner\u0027: False,"},{"line_number":173,"context_line":"        \u0027allowable_clock_skew\u0027: 900,"},{"line_number":174,"context_line":"        \u0027ratelimit_as_client_error\u0027: False,"},{"line_number":175,"context_line":"        \u0027max_upload_part_num\u0027: 10000,"},{"line_number":176,"context_line":"    }"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def __init__(self, base\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"844623b2_47e44f2d","line":175,"updated":"2024-02-22 10:12:33.000000000","message":"@Ashwin this change seems related but separate scope to this patch, and came in with no test changes. I\u0027m going to revert this. As it is, I think it is ineffectual because the default of 1000 is imposed elsewhere.","commit_id":"5b94455f89517895e2d16e0ab61e3d28680c57f0"}]}
