]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: S3 Delete Bucket Policy should return 204 on success 61384/head
authorSimon Jürgensmeyer <simon.juergensmeyer@hetzner-cloud.de>
Wed, 15 Jan 2025 08:08:38 +0000 (09:08 +0100)
committerSimon Jürgensmeyer <simon.juergensmeyer@hetzner-cloud.de>
Wed, 15 Jan 2025 08:23:55 +0000 (09:23 +0100)
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 <simon.juergensmeyer@hetzner-cloud.de>
src/rgw/rgw_op.cc

index 7b0ca3134a3068dd67cac55d9c654851845d90ed..1793c0b806545ce11897c4046e1058f265dd8f10 100644 (file)
@@ -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);
 };
-