)]}'
{"swift/common/middleware/s3api/controllers/multi_delete.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"f6b61f323466022a0322ef5a7b8d6051752d907c","unresolved":true,"context_lines":[{"line_number":129,"context_line":"                                        headers\u003d{\u0027Accept\u0027: \u0027application/json\u0027})"},{"line_number":130,"context_line":"                # For synchronous deletes, have to read the response to"},{"line_number":131,"context_line":"                # actually do the SLO delete"},{"line_number":132,"context_line":"                if query.get(\u0027multipart-manifest\u0027) and not query.get(\u0027async\u0027):"},{"line_number":133,"context_line":"                    try:"},{"line_number":134,"context_line":"                        delete_result \u003d json.loads(resp.body)"},{"line_number":135,"context_line":"                        if delete_result[\u0027Errors\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"c2f10ad7_e03b272e","line":132,"updated":"2021-07-30 17:35:00.000000000","message":"I\u0027m scrambling up the learning curve...\n\nasync is set in the query in gen_multipart_manifest_delete_query, but there\u0027s a comment there that implies that if allow_async_delete is off then SLO will handle the delete synchronously, so is it possible that the \"not query.get(\u0027async\u0027)\" condition excludes an async delete that was actually done synchronously?","commit_id":"d4bb03458debed3106199c73bf33639c6bab3470"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1042b2b47e8cec5c2f5f9fd9e87c3226be2381c3","unresolved":true,"context_lines":[{"line_number":129,"context_line":"                                        headers\u003d{\u0027Accept\u0027: \u0027application/json\u0027})"},{"line_number":130,"context_line":"                # For synchronous deletes, have to read the response to"},{"line_number":131,"context_line":"                # actually do the SLO delete"},{"line_number":132,"context_line":"                if query.get(\u0027multipart-manifest\u0027) and not query.get(\u0027async\u0027):"},{"line_number":133,"context_line":"                    try:"},{"line_number":134,"context_line":"                        delete_result \u003d json.loads(resp.body)"},{"line_number":135,"context_line":"                        if delete_result[\u0027Errors\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab4feae8_251ce67c","line":132,"in_reply_to":"c2f10ad7_e03b272e","updated":"2021-07-30 18:35:14.000000000","message":"Oh, possibly -- I couldn\u0027t remember (and didn\u0027t bother to check) whether I checked get_swift_info or not. That probably explains the func test failures. Yeah, looks like I need to actually check the status code.","commit_id":"d4bb03458debed3106199c73bf33639c6bab3470"}],"test/unit/common/middleware/s3api/test_multi_delete.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"376e8e01caede282eceafa6d6185313921195df2","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        self.swift.register(\u0027HEAD\u0027, \u0027/v1/AUTH_test/bucket/Key3\u0027,"},{"line_number":70,"context_line":"                            swob.HTTPOk,"},{"line_number":71,"context_line":"                            {\u0027x-static-large-object\u0027: \u0027True\u0027},"},{"line_number":72,"context_line":"                            None)"},{"line_number":73,"context_line":"        slo_delete_resp \u003d {"},{"line_number":74,"context_line":"            \u0027Number Not Found\u0027: 0,"},{"line_number":75,"context_line":"            \u0027Response Status\u0027: \u0027200 OK\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3af76857_d60be0d1","line":72,"updated":"2021-08-02 13:20:13.000000000","message":"this re-ordering isn\u0027t significant, correct? (just ordering by keys?)","commit_id":"61dd2ee44ac242d64ef412626c03e1e38fec34e9"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"376e8e01caede282eceafa6d6185313921195df2","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        self.swift.register(\u0027HEAD\u0027, \u0027/v1/AUTH_test/bucket/Key4\u0027,"},{"line_number":83,"context_line":"                            swob.HTTPOk,"},{"line_number":84,"context_line":"                            {\u0027x-static-large-object\u0027: \u0027True\u0027,"},{"line_number":85,"context_line":"                             \u0027x-object-sysmeta-s3api-etag\u0027: \u0027some-etag\u0027},"},{"line_number":86,"context_line":"                            None)"},{"line_number":87,"context_line":"        self.swift.register(\u0027DELETE\u0027, \u0027/v1/AUTH_test/bucket/Key4\u0027,"},{"line_number":88,"context_line":"                            swob.HTTPNoContent, {}, None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"f20fbdbd_b7401186","line":85,"range":{"start_line":85,"start_character":29,"end_line":85,"end_character":71},"updated":"2021-08-02 13:20:13.000000000","message":"this has some magical significance I don\u0027t yet understand, other than it causes the following delete to be async","commit_id":"61dd2ee44ac242d64ef412626c03e1e38fec34e9"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"376e8e01caede282eceafa6d6185313921195df2","unresolved":true,"context_lines":[{"line_number":85,"context_line":"                             \u0027x-object-sysmeta-s3api-etag\u0027: \u0027some-etag\u0027},"},{"line_number":86,"context_line":"                            None)"},{"line_number":87,"context_line":"        self.swift.register(\u0027DELETE\u0027, \u0027/v1/AUTH_test/bucket/Key4\u0027,"},{"line_number":88,"context_line":"                            swob.HTTPNoContent, {}, None)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        elem \u003d Element(\u0027Delete\u0027)"},{"line_number":91,"context_line":"        for key in [\u0027Key1\u0027, \u0027Key2\u0027, \u0027Key3\u0027, \u0027Key4\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"425ebc6d_d7d3c47b","line":88,"range":{"start_line":88,"start_character":52,"end_line":88,"end_character":56},"updated":"2021-08-02 13:20:13.000000000","message":"ok, with change reverted the test fails because we\u0027re not returning any slo delete response here","commit_id":"61dd2ee44ac242d64ef412626c03e1e38fec34e9"}],"test/unit/common/middleware/s3api/test_obj.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"376e8e01caede282eceafa6d6185313921195df2","unresolved":true,"context_lines":[{"line_number":1572,"context_line":"                             \u0027x-object-sysmeta-s3api-etag\u0027: \u0027s3-style-etag\u0027},"},{"line_number":1573,"context_line":"                            None)"},{"line_number":1574,"context_line":"        self.swift.register(\u0027DELETE\u0027, \u0027/v1/AUTH_test/bucket/object\u0027,"},{"line_number":1575,"context_line":"                            swob.HTTPNoContent, {}, \u0027\u0027)"},{"line_number":1576,"context_line":"        req \u003d Request.blank(\u0027/bucket/object\u0027,"},{"line_number":1577,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027DELETE\u0027},"},{"line_number":1578,"context_line":"                            headers\u003d{\u0027Authorization\u0027: \u0027AWS test:tester:hmac\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ef794b61_ccd1768e","line":1575,"range":{"start_line":1575,"start_character":28,"end_line":1575,"end_character":46},"updated":"2021-08-02 13:20:13.000000000","message":"ok, this is fixing bad test setup: a backend delete returns 204 not 200, but the test passed before because s3api always returns a 204 for the delete here https://github.com/openstack/swift/blob/1af995f0e81994671583ce0fff4135164be11b6a/swift/common/middleware/s3api/controllers/obj.py#L225-L236","commit_id":"61dd2ee44ac242d64ef412626c03e1e38fec34e9"}]}
