From: Satoru Takeuchi Date: Mon, 27 Dec 2021 08:03:41 +0000 (+0000) Subject: rgw: remove bucket API returns NoSuchKey than NoSuchBucket X-Git-Tag: v17.1.0~38^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=553f4f73cbe2965713c8676d4fccad6c799151ea;p=ceph.git rgw: remove bucket API returns NoSuchKey than NoSuchBucket Remove bucket API returns NoSuchKey but NoSuchBucket is appropriate in this case. Code path: RGWRadosStore::get_bucket -> RGWRadosBucket::get_bucket_info -> RGWBucketCtl::read_bucket_info -> RGWBucketCtl::read_bucket_entrypoint_info -> RGWSI_Bucket_SObj::read_bucket_entrypoint_info -> RGWSI_MetaBackend_SObj::get_entry -> rgw_get_system_obj -> RGWSI_SysObj::Obj::ROp::stat -> RGWSI_SysObj_Core::stat # return -ENOENT here. [1]: https://docs.ceph.com/en/pacific/radosgw/adminops/#remove-bucket Fixes: https://tracker.ceph.com/issues/53731 Signed-off-by: Satoru Takeuchi (cherry picked from commit 375c22aba3ea1d4af6b05a3c83b0aee6ad2a0b6a) --- diff --git a/src/rgw/rgw_rest_bucket.cc b/src/rgw/rgw_rest_bucket.cc index 8df99378ea70..8a1cf3f754d5 100644 --- a/src/rgw/rgw_rest_bucket.cc +++ b/src/rgw/rgw_rest_bucket.cc @@ -225,6 +225,9 @@ void RGWOp_Bucket_Remove::execute(optional_yield y) op_ret = store->get_bucket(s, s->user.get(), string(), bucket_name, &bucket, y); if (op_ret < 0) { ldpp_dout(this, 0) << "get_bucket returned ret=" << op_ret << dendl; + if (op_ret == -ENOENT) { + op_ret = -ERR_NO_SUCH_BUCKET; + } return; } @@ -404,5 +407,4 @@ RGWOp *RGWHandler_Bucket::op_delete() return new RGWOp_Object_Remove; return new RGWOp_Bucket_Remove; -} - +} \ No newline at end of file diff --git a/src/rgw/services/svc_bucket_sobj.cc b/src/rgw/services/svc_bucket_sobj.cc index c5bdd69b0746..99a435215e44 100644 --- a/src/rgw/services/svc_bucket_sobj.cc +++ b/src/rgw/services/svc_bucket_sobj.cc @@ -641,5 +641,4 @@ int RGWSI_Bucket_SObj::read_buckets_stats(RGWSI_Bucket_X_Ctx& ctx, } return m.size(); -} - +} \ No newline at end of file