)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32333,"name":"Aymeric Ducroquetz","email":"aymeric.ducroquetz@gmail.com","username":"AymericDu"},"change_message_id":"3bd6ef6b351893d2f0bdf9f6f892881c9d158e37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"39665971_c9b8eda3","updated":"2021-10-25 15:11:35.000000000","message":"The tests on the ACLs already working with the current code, here are the logs which show the interest of this modification.\n\n# Before\n\n## Bucket ACLs\n\n```\nOct 25 14:32:16 saio proxy-server[31016]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:32:16] \"GET /mybucket/?acl HTTP/1.1\" 200 777 0.034445 (txn: txf54e77e32a34448a9362c-006176bff0)\nOct 25 14:32:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/32/16 GET /mybucket/%3Facl HTTP/1.0 200 - - - - 450 - txf54e77e32a34448a9362c-006176bff0 - 0.0234 - - 1635172336.762181997 1635172336.785572052 -\nOct 25 14:32:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/32/16 GET /v1/AUTH_test/mybucket%3Fformat%3Djson HTTP/1.0 200 - - - - 2 - txf54e77e32a34448a9362c-006176bff0 - 0.0093 S3 - 1635172336.774264097 1635172336.783515930 0\nOct 25 14:32:16 saio container-6011[31009]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:32:16] \"GET /sdb1/259/AUTH_test/mybucket?format\u003djson HTTP/1.1\" 200 751 0.004304 (txn: txf54e77e32a34448a9362c-006176bff0)\nOct 25 14:32:16 saio container-6011[31009]: 127.0.0.1 - - [25/Oct/2021:14:32:16 +0000] \"GET /sdb1/259/AUTH_test/mybucket\" 200 2 \"GET http://saio:8080/v1/AUTH_test/mybucket?format\u003djson\" \"txf54e77e32a34448a9362c-006176bff0\" \"proxy-server 31016\" 0.0026 \"-\" 31009 0\nOct 25 14:32:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/32/16 HEAD /v1/AUTH_test/mybucket%3Fstates%3Dlisting%26format%3Djson HTTP/1.0 204 - - - - - - txf54e77e32a34448a9362c-006176bff0 - 0.0077 S3 - 1635172336.765032053 1635172336.772727013 0\nOct 25 14:32:16 saio container-6011[31009]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:32:16] \"HEAD /sdb1/259/AUTH_test/mybucket?states\u003dlisting\u0026format\u003djson HTTP/1.1\" 204 684 0.002296 (txn: txf54e77e32a34448a9362c-006176bff0)\nOct 25 14:32:16 saio container-6011[31009]: 127.0.0.1 - - [25/Oct/2021:14:32:16 +0000] \"HEAD /sdb1/259/AUTH_test/mybucket\" 204 - \"HEAD http://saio:8080/v1/AUTH_test/mybucket?states\u003dlisting\u0026format\u003djson\" \"txf54e77e32a34448a9362c-006176bff0\" \"proxy-server 31016\" 0.0015 \"-\" 31009 0\nOct 25 14:32:16 saio proxy-server[31016]: checking permission: mybucket  HEAD {\u0027X-Amz-Content-Sha256\u0027: \u0027e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\u0027, \u0027Content-Length\u0027: \u00270\u0027, \u0027Accept-Encoding\u0027: \u0027identity\u0027, \u0027Host\u0027: \u0027saio:8080\u0027, \u0027X-Amz-Date\u0027: \u002720211025T143216Z\u0027, \u0027Content-Type\u0027: \u0027\u0027, \u0027Authorization\u0027: \u0027AWS4-HMAC-SHA256 Credential\u003dtest:tester/20211025/us-east-1/s3/aws4_request,SignedHeaders\u003dhost;x-amz-content-sha256;x-amz-date,Signature\u003dfd1390e6eb2928e6a3a568e41ff244d0f71a11b7c6b7ceb956ea9ab8bf5cdc6b\u0027} (txn: txf54e77e32a34448a9362c-006176bff0) (client_ip: 127.0.0.1)\nOct 25 14:32:16 saio proxy-server[31016]: Calling S3Api Middleware (txn: txf54e77e32a34448a9362c-006176bff0) (client_ip: 127.0.0.1)\nOct 25 14:32:16 saio proxy-server[31016]: User test:tester has admin authorizing. (txn: txf54e77e32a34448a9362c-006176bff0) (client_ip: 127.0.0.1)\nOct 25 14:32:16 saio proxy-server[31016]: User: test:tester uses token s3 (trans_id txf54e77e32a34448a9362c-006176bff0) (client_ip: 127.0.0.1)\n```\n\n## Object ACLs\n\n```\nOct 25 14:35:16 saio proxy-server[31016]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:35:16] \"GET /mybucket/test?acl HTTP/1.1\" 200 777 0.043328 (txn: tx2da49ac143e5464a9ca28-006176c0a4)\nOct 25 14:35:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/35/16 GET /mybucket/test%3Facl HTTP/1.0 200 - - - - 450 - tx2da49ac143e5464a9ca28-006176c0a4 - 0.0259 - - 1635172516.792836905 1635172516.818753958 0\nOct 25 14:35:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/35/16 GET /v1/AUTH_test/mybucket/test HTTP/1.0 499 - - - - 111 - tx2da49ac143e5464a9ca28-006176c0a4 - 0.0069 S3 - 1635172516.808485985 1635172516.815361977 0\nOct 25 14:35:16 saio object-6010[31012]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:35:16] \"GET /sdb1/230/AUTH_test/mybucket/test HTTP/1.1\" 200 760 0.001824 (txn: tx2da49ac143e5464a9ca28-006176c0a4)\nOct 25 14:35:16 saio object-6010[31012]: 127.0.0.1 - - [25/Oct/2021:14:35:16 +0000] \"GET /sdb1/230/AUTH_test/mybucket/test\" 200 111 \"GET http://saio:8080/v1/AUTH_test/mybucket/test\" \"tx2da49ac143e5464a9ca28-006176c0a4\" \"proxy-server 31016\" 0.0011 \"-\" 31012 0\nOct 25 14:35:16 saio proxy-server[31016]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/35/16 HEAD /v1/AUTH_test/mybucket/test HTTP/1.0 200 - - - - - - tx2da49ac143e5464a9ca28-006176c0a4 - 0.0084 S3 - 1635172516.796112061 1635172516.804512024 0\nOct 25 14:35:16 saio object-6040[31014]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:35:16] \"HEAD /sdb4/230/AUTH_test/mybucket/test HTTP/1.1\" 200 649 0.003984 (txn: tx2da49ac143e5464a9ca28-006176c0a4)\nOct 25 14:35:16 saio object-6040[31014]: 127.0.0.1 - - [25/Oct/2021:14:35:16 +0000] \"HEAD /sdb4/230/AUTH_test/mybucket/test\" 200 111 \"HEAD http://saio:8080/v1/AUTH_test/mybucket/test\" \"tx2da49ac143e5464a9ca28-006176c0a4\" \"proxy-server 31016\" 0.0025 \"-\" 31014 0\nOct 25 14:35:16 saio proxy-server[31016]: checking permission: mybucket test HEAD {\u0027X-Amz-Content-Sha256\u0027: \u0027e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\u0027, \u0027Content-Length\u0027: \u00270\u0027, \u0027Accept-Encoding\u0027: \u0027identity\u0027, \u0027Host\u0027: \u0027saio:8080\u0027, \u0027X-Amz-Date\u0027: \u002720211025T143516Z\u0027, \u0027Content-Type\u0027: \u0027\u0027, \u0027Authorization\u0027: \u0027AWS4-HMAC-SHA256 Credential\u003dtest:tester/20211025/us-east-1/s3/aws4_request,SignedHeaders\u003dhost;x-amz-content-sha256;x-amz-date,Signature\u003dcaad2b097d8d3617118c089327396d527eb7084480ac2bfe83fbab5d6f4eb513\u0027} (txn: tx2da49ac143e5464a9ca28-006176c0a4) (client_ip: 127.0.0.1)\nOct 25 14:35:16 saio proxy-server[31016]: Calling S3Api Middleware (txn: tx2da49ac143e5464a9ca28-006176c0a4) (client_ip: 127.0.0.1)\nOct 25 14:35:16 saio proxy-server[31016]: User test:tester has admin authorizing. (txn: tx2da49ac143e5464a9ca28-006176c0a4) (client_ip: 127.0.0.1)\nOct 25 14:35:16 saio proxy-server[31016]: User: test:tester uses token s3 (trans_id tx2da49ac143e5464a9ca28-006176c0a4) (client_ip: 127.0.0.1)\n```\n\nThe content of the object is unnecessarily fetched.\nAdditionally, because the data is skipped, a 499 error is returned on a subrequest.\n\n# After\n\n## Bucket ACLs\n\n```\nOct 25 14:27:01 saio proxy-server[26618]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:27:01] \"GET /mybucket/?acl HTTP/1.1\" 200 777 0.034115 (txn: txf28174ecd07b41f09f330-006176beb5)\nOct 25 14:27:01 saio container-6021[26609]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:27:01] \"HEAD /sdb2/259/AUTH_test/mybucket?format\u003djson HTTP/1.1\" 204 684 0.007447 (txn: txf28174ecd07b41f09f330-006176beb5)\nOct 25 14:27:01 saio proxy-server[26618]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/27/01 GET /mybucket/%3Facl HTTP/1.0 200 - - - - 450 - txf28174ecd07b41f09f330-006176beb5 - 0.0254 - - 1635172021.452521086 1635172021.477904081 -\nOct 25 14:27:01 saio proxy-server[26618]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/27/01 HEAD /v1/AUTH_test/mybucket%3Fformat%3Djson HTTP/1.0 204 - - - - - - txf28174ecd07b41f09f330-006176beb5 - 0.0060 S3 - 1635172021.470190048 1635172021.476169109 0\nOct 25 14:27:01 saio container-6021[26609]: 127.0.0.1 - - [25/Oct/2021:14:27:01 +0000] \"HEAD /sdb2/259/AUTH_test/mybucket\" 204 - \"HEAD http://saio:8080/v1/AUTH_test/mybucket?format\u003djson\" \"txf28174ecd07b41f09f330-006176beb5\" \"proxy-server 26618\" 0.0015 \"-\" 26609 0\nOct 25 14:27:01 saio container-6021[26609]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:27:01] \"HEAD /sdb2/259/AUTH_test/mybucket?states\u003dlisting\u0026format\u003djson HTTP/1.1\" 204 684 0.010674 (txn: txf28174ecd07b41f09f330-006176beb5)\nOct 25 14:27:01 saio proxy-server[26618]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/27/01 HEAD /v1/AUTH_test/mybucket%3Fstates%3Dlisting%26format%3Djson HTTP/1.0 204 - - - - - - txf28174ecd07b41f09f330-006176beb5 - 0.0112 S3 - 1635172021.457252979 1635172021.468477011 0\nOct 25 14:27:01 saio container-6021[26609]: 127.0.0.1 - - [25/Oct/2021:14:27:01 +0000] \"HEAD /sdb2/259/AUTH_test/mybucket\" 204 - \"HEAD http://saio:8080/v1/AUTH_test/mybucket?states\u003dlisting\u0026format\u003djson\" \"txf28174ecd07b41f09f330-006176beb5\" \"proxy-server 26618\" 0.0042 \"-\" 26609 0\nOct 25 14:27:01 saio proxy-server[26618]: checking permission: mybucket  HEAD {\u0027X-Amz-Content-Sha256\u0027: \u0027e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\u0027, \u0027Content-Length\u0027: \u00270\u0027, \u0027Accept-Encoding\u0027: \u0027identity\u0027, \u0027Host\u0027: \u0027saio:8080\u0027, \u0027X-Amz-Date\u0027: \u002720211025T142701Z\u0027, \u0027Content-Type\u0027: \u0027\u0027, \u0027Authorization\u0027: \u0027AWS4-HMAC-SHA256 Credential\u003dtest:tester/20211025/us-east-1/s3/aws4_request,SignedHeaders\u003dhost;x-amz-content-sha256;x-amz-date,Signature\u003d7b3c55698870facd0a93efdca134b88a33a04cea6ad086195d8701f77554dd94\u0027} (txn: txf28174ecd07b41f09f330-006176beb5) (client_ip: 127.0.0.1)\nOct 25 14:27:01 saio proxy-server[26618]: Calling S3Api Middleware (txn: txf28174ecd07b41f09f330-006176beb5) (client_ip: 127.0.0.1)\nOct 25 14:27:01 saio proxy-server[26618]: User test:tester has admin authorizing. (txn: txf28174ecd07b41f09f330-006176beb5) (client_ip: 127.0.0.1)\nOct 25 14:27:01 saio proxy-server[26618]: User: test:tester uses token s3 (trans_id txf28174ecd07b41f09f330-006176beb5) (client_ip: 127.0.0.1)\n```\n\n## Object ACLs\n\n```\nOct 25 14:38:02 saio proxy-server[3019]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:38:02] \"GET /mybucket/test?acl HTTP/1.1\" 200 777 0.030654 (txn: txa97e50b2cb2a460dbca33-006176c14a)\nOct 25 14:38:02 saio proxy-server[3019]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/38/02 GET /mybucket/test%3Facl HTTP/1.0 200 - - - - 450 - txa97e50b2cb2a460dbca33-006176c14a - 0.0238 - - 1635172682.865469933 1635172682.889313936 0\nOct 25 14:38:02 saio proxy-server[3019]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/38/02 HEAD /v1/AUTH_test/mybucket/test HTTP/1.0 200 - - - - - - txa97e50b2cb2a460dbca33-006176c14a - 0.0053 S3 - 1635172682.882401943 1635172682.887715101 0\nOct 25 14:38:02 saio object-6040[3017]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:38:02] \"HEAD /sdb4/230/AUTH_test/mybucket/test HTTP/1.1\" 200 649 0.001452 (txn: txa97e50b2cb2a460dbca33-006176c14a)\nOct 25 14:38:02 saio object-6040[3017]: 127.0.0.1 - - [25/Oct/2021:14:38:02 +0000] \"HEAD /sdb4/230/AUTH_test/mybucket/test\" 200 111 \"HEAD http://saio:8080/v1/AUTH_test/mybucket/test\" \"txa97e50b2cb2a460dbca33-006176c14a\" \"proxy-server 3019\" 0.0007 \"-\" 3017 0\nOct 25 14:38:02 saio object-6040[3017]: STDERR: 127.0.0.1 - - [25/Oct/2021 14:38:02] \"HEAD /sdb4/230/AUTH_test/mybucket/test HTTP/1.1\" 200 649 0.006286 (txn: txa97e50b2cb2a460dbca33-006176c14a)\nOct 25 14:38:02 saio proxy-server[3019]: 127.0.0.1 127.0.0.1 25/Oct/2021/14/38/02 HEAD /v1/AUTH_test/mybucket/test HTTP/1.0 200 - - - - - - txa97e50b2cb2a460dbca33-006176c14a - 0.0084 S3 - 1635172682.869914055 1635172682.878274918 0\nOct 25 14:38:02 saio object-6040[3017]: 127.0.0.1 - - [25/Oct/2021:14:38:02 +0000] \"HEAD /sdb4/230/AUTH_test/mybucket/test\" 200 111 \"HEAD http://saio:8080/v1/AUTH_test/mybucket/test\" \"txa97e50b2cb2a460dbca33-006176c14a\" \"proxy-server 3019\" 0.0016 \"-\" 3017 0\nOct 25 14:38:02 saio proxy-server[3019]: checking permission: mybucket test HEAD {\u0027X-Amz-Content-Sha256\u0027: \u0027e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\u0027, \u0027Content-Length\u0027: \u00270\u0027, \u0027Accept-Encoding\u0027: \u0027identity\u0027, \u0027Host\u0027: \u0027saio:8080\u0027, \u0027X-Amz-Date\u0027: \u002720211025T143802Z\u0027, \u0027Content-Type\u0027: \u0027\u0027, \u0027Authorization\u0027: \u0027AWS4-HMAC-SHA256 Credential\u003dtest:tester/20211025/us-east-1/s3/aws4_request,SignedHeaders\u003dhost;x-amz-content-sha256;x-amz-date,Signature\u003d52198af3ec7a88d25c7bdd75559449c154d96f1f2177562087d59f49b2c98f30\u0027} (txn: txa97e50b2cb2a460dbca33-006176c14a) (client_ip: 127.0.0.1)\nOct 25 14:38:02 saio proxy-server[3019]: Calling S3Api Middleware (txn: txa97e50b2cb2a460dbca33-006176c14a) (client_ip: 127.0.0.1)\nOct 25 14:38:02 saio proxy-server[3019]: User test:tester has admin authorizing. (txn: txa97e50b2cb2a460dbca33-006176c14a) (client_ip: 127.0.0.1)\nOct 25 14:38:02 saio proxy-server[3019]: User: test:tester uses token s3 (trans_id txa97e50b2cb2a460dbca33-006176c14a) (client_ip: 127.0.0.1)\n```\n","commit_id":"38a7c464c5f15ebfb846f50511137d26025527f3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"032bc385f06de7962888afe2bf458c67a8826f2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b9197692_e7657140","updated":"2021-10-25 15:47:08.000000000","message":"this is neat!\n\nI normally do my s3 testing with a boto3 client:\n\nhttps://github.com/openstack/swift/tree/master/test/s3api\n\ncan you confirm which method to call to exercise these changes:\n\nhttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client\n\n... read_bucket_acl \u0026 read_object_acl ???\n\n","commit_id":"38a7c464c5f15ebfb846f50511137d26025527f3"},{"author":{"_account_id":32333,"name":"Aymeric Ducroquetz","email":"aymeric.ducroquetz@gmail.com","username":"AymericDu"},"change_message_id":"4cf33adb7e3deae9c72656ea079194a15900c4b4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1ca8b018_a9054602","in_reply_to":"b9197692_e7657140","updated":"2021-10-25 16:05:18.000000000","message":"Here are the methods to reproduce the problem:\n- bucket ACLs: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.get_bucket_acl\n- object ACLs: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.get_object_acl\n\nIn addition, in the proxy server configuration, you need to enable `s3_acl`.","commit_id":"38a7c464c5f15ebfb846f50511137d26025527f3"},{"author":{"_account_id":32333,"name":"Aymeric Ducroquetz","email":"aymeric.ducroquetz@gmail.com","username":"AymericDu"},"change_message_id":"61c99a0f756fb1cbb1a9a5605ec7d59c7360f454","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6ba8e268_43651b40","updated":"2022-01-13 14:27:58.000000000","message":"Hello.\nAs this Pull Request is no longer active and I have no modification to make, I take the liberty of relaunching you.\nAre you waiting for other changes?","commit_id":"b8d7c3dcb817504dcc0959ba52cc4ed2cf66c100"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"427627229fe75af1de9bda518f08a24ecc3b8797","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"302ee5bd_19347a21","updated":"2022-01-14 04:09:02.000000000","message":"Manually testing on my local machine.\nWithout the patch:\n\n  vagrant@saio:~/swift$ aws s3api get-bucket-acl --bucket mybucket\n  {\n      \"Owner\": {\n          \"DisplayName\": \"test:tester\", \n          \"ID\": \"test:tester\"\n      }, \n      \"Grants\": [\n          {\n              \"Grantee\": {\n                  \"Type\": \"CanonicalUser\", \n                  \"DisplayName\": \"test:tester\", \n                  \"ID\": \"test:tester\"\n              }, \n              \"Permission\": \"FULL_CONTROL\"\n          }\n      ]\n  }\n  ...\n  Jan 14 03:51:06 saio container-6031[28670]: 127.0.0.1 - - [14/Jan/2022:03:51:06 +0000] \"GET /sdb3/259/AUTH_test/mybucket\" 200 174 \"GET http://saio:8080/v1/AUTH_test/mybucket?format\u003djson\" \"tx63e917aba49e4262b21cc-0061e0f32a\" \"proxy-server 28677\" 0.0047 \"-\" 28670 0\n  Jan 14 03:51:06 saio container-6031[28670]: STDERR: 127.0.0.1 - - [14/Jan/2022 03:51:06] \"GET /sdb3/259/AUTH_test/mybucket?format\u003djson HTTP/1.1\" 200 928 0.005305 (txn: tx63e917aba49e4262b21cc-0061e0f32a)\n\nUsing a GET, but with this patch:\n\n  vagrant@saio:~/swift$ aws s3api get-bucket-acl --bucket mybucket\n  {\n      \"Owner\": {\n          \"DisplayName\": \"test:tester\", \n          \"ID\": \"test:tester\"\n      }, \n      \"Grants\": [\n          {\n              \"Grantee\": {\n                  \"Type\": \"CanonicalUser\", \n                  \"DisplayName\": \"test:tester\", \n                  \"ID\": \"test:tester\"\n              }, \n              \"Permission\": \"FULL_CONTROL\"\n          }\n      ]\n  }\n  ...\n  Jan 14 03:56:51 saio container-6041[29131]: 127.0.0.1 - - [14/Jan/2022:03:56:51 +0000] \"HEAD /sdb4/259/AUTH_test/mybucket\" 204 - \"HEAD http://saio:8080/v1/AUTH_test/mybucket?format\u003djson\" \"tx5ba94c2ee5f3460fa1241-0061e0f483\" \"proxy-server 29137\" 0.0010 \"-\" 29131 0\n  Jan 14 03:56:51 saio container-6041[29131]: STDERR: 127.0.0.1 - - [14/Jan/2022 03:56:51] \"HEAD /sdb4/259/AUTH_test/mybucket?format\u003djson HTTP/1.1\" 204 687 0.001666 (txn: tx5ba94c2ee5f3460fa1241-0061e0f483)\n","commit_id":"b8d7c3dcb817504dcc0959ba52cc4ed2cf66c100"}],"swift/common/middleware/s3api/acl_handlers.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"21baad7d7df27d8256b428d4a27ab8476ada8f38","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    \"\"\""},{"line_number":249,"context_line":"    S3AclHandler: Handler for S3AclController"},{"line_number":250,"context_line":"    \"\"\""},{"line_number":251,"context_line":"    def HEAD(self, app):"},{"line_number":252,"context_line":"        self._handle_acl(app, \u0027HEAD\u0027, permission\u003d\u0027READ_ACP\u0027)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def GET(self, app):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fd685654_72d9803a","line":251,"updated":"2021-10-25 23:58:50.000000000","message":"I don\u0027t understand why this section works.\n\nA few lines above, S3AclHandler inherits from BasicAclHandler. When request comes in, there\u0027s a bit of a shuffling and set_acl_handler(), but eventually handle_acl() is called. We don\u0027t have one, so the generic one works. It re-instantiates the handler for some reason, then does hasattr(). Presumably it\u0027s still S3AclHandler class. So, HEAD() is not present. Then it falls through to _handle_acl(), which invokes HEADs. So, the end result is not a GET as claimed by the changelog.\n\nWhat am I missing?","commit_id":"38a7c464c5f15ebfb846f50511137d26025527f3"},{"author":{"_account_id":32333,"name":"Aymeric Ducroquetz","email":"aymeric.ducroquetz@gmail.com","username":"AymericDu"},"change_message_id":"b19a02de334951eccec786642ccf050123358628","unresolved":true,"context_lines":[{"line_number":248,"context_line":"    \"\"\""},{"line_number":249,"context_line":"    S3AclHandler: Handler for S3AclController"},{"line_number":250,"context_line":"    \"\"\""},{"line_number":251,"context_line":"    def HEAD(self, app):"},{"line_number":252,"context_line":"        self._handle_acl(app, \u0027HEAD\u0027, permission\u003d\u0027READ_ACP\u0027)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def GET(self, app):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a8874fca_7af7eb16","line":251,"in_reply_to":"fd685654_72d9803a","updated":"2021-10-26 07:13:12.000000000","message":"Before entering this section, the main request goes through the GET method from `S3AclController`. It is the change of this method which allows to transform the request GET request (to retrieve ACLs S3) into request HEAD. The section you mentioned above allows us to have permissions to read S3 ACLs (like the GET method, which was used before).\n\nIn addition, in the logs provided in a previous comment, before the changes, we can see a GET request reaching the `container-server` (or` object-server`). To reproduce these logs, you can run these commands (don\u0027t forget to enable `s3_acl` in the` proxy-server` conf):\n```\n$ aws s3api get-bucket-acl --bucket mybucket\n{\n    \"Owner\": {\n        \"DisplayName\": \"test:tester\", \n        \"ID\": \"test:tester\"\n    }, \n    \"Grants\": [\n        {\n            \"Grantee\": {\n                \"Type\": \"CanonicalUser\", \n                \"DisplayName\": \"test:tester\", \n                \"ID\": \"test:tester\"\n            }, \n            \"Permission\": \"FULL_CONTROL\"\n        }\n    ]\n}\n$ aws s3api get-object-acl --bucket mybucket --key test\n{\n    \"Owner\": {\n        \"DisplayName\": \"test:tester\", \n        \"ID\": \"test:tester\"\n    }, \n    \"Grants\": [\n        {\n            \"Grantee\": {\n                \"Type\": \"CanonicalUser\", \n                \"DisplayName\": \"test:tester\", \n                \"ID\": \"test:tester\"\n            }, \n            \"Permission\": \"FULL_CONTROL\"\n        }\n    ]\n}\n```\n\nTo highlight the problem, I also modified 2 unit tests to verify the methods used.","commit_id":"38a7c464c5f15ebfb846f50511137d26025527f3"}]}
