From: Simon Jürgensmeyer Date: Wed, 15 Jan 2025 08:08:38 +0000 (+0100) Subject: rgw: S3 Delete Bucket Policy should return 204 on success X-Git-Tag: v20.0.0~370^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F61384%2Fhead;p=ceph.git rgw: S3 Delete Bucket Policy should return 204 on success Currently, RGW returns a 200 on a successful DELETE on a bucket policy but the S3 API expects a 204: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html The sample response in the example above is a 204. This patch checks the op_ret in `RGWDeleteBucketPolicy::send_response()` and on a success we turn it to a 204 (or STATUS_NO_CONTENT). Fixes: https://tracker.ceph.com/issues/69539 Signed-off-by: Simon Jürgensmeyer --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 7b0ca3134a30..1793c0b80654 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -8582,6 +8582,10 @@ void RGWGetBucketPolicy::execute(optional_yield y) void RGWDeleteBucketPolicy::send_response() { + if (!op_ret) { + /* A successful Delete Bucket Policy should return a 204 on success */ + op_ret = STATUS_NO_CONTENT; + } if (op_ret) { set_req_state_err(s, op_ret); } @@ -9257,4 +9261,3 @@ void rgw_slo_entry::decode_json(JSONObj *obj) JSONDecoder::decode_json("etag", etag, obj); JSONDecoder::decode_json("size_bytes", size_bytes, obj); }; -