From 5831f58409109852546ae81d2074f4c82664bde1 Mon Sep 17 00:00:00 2001 From: mengxiangrui Date: Tue, 6 Jul 2021 19:58:55 +0800 Subject: [PATCH] rgw: fail as expected when set/delete-bucket-website attempted on a non-existent bucket, rgw should return HTTP 404 and NoSuchBucket. Fixes: https://tracker.ceph.com/issues/51536 Signed-off-by: xiangrui meng (cherry picked from commit c623aa45d35b269c6701a57e44ac05bb29a79dc8) Conflicts: - src/rgw/rgw_op.cc Cherry-pick notes: - rgw_op.cc forward_reqeuest_to_master takes different arguments in Octopus vs. Quincy --- src/rgw/rgw_op.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 6914cc1ab6a53..ec0dbf64361dc 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2786,6 +2786,11 @@ void RGWSetBucketWebsite::execute() if (op_ret < 0) return; + if (!s->bucket_exists) { + op_ret = -ERR_NO_SUCH_BUCKET; + return; + } + if (!store->svc()->zone->is_meta_master()) { op_ret = forward_request_to_master(s, NULL, store, in_data, nullptr); if (op_ret < 0) { @@ -2821,6 +2826,10 @@ void RGWDeleteBucketWebsite::pre_exec() void RGWDeleteBucketWebsite::execute() { + if (!s->bucket_exists) { + op_ret = -ERR_NO_SUCH_BUCKET; + return; + } if (!store->svc()->zone->is_meta_master()) { bufferlist in_data; -- 2.39.5