]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: remove bucket API returns NoSuchKey than NoSuchBucket 45489/head
authorSatoru Takeuchi <satoru.takeuchi@gmail.com>
Mon, 27 Dec 2021 08:03:41 +0000 (08:03 +0000)
committerCory Snyder <csnyder@iland.com>
Thu, 17 Mar 2022 13:22:38 +0000 (09:22 -0400)
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 <satoru.takeuchi@gmail.com>
(cherry picked from commit 375c22aba3ea1d4af6b05a3c83b0aee6ad2a0b6a)

src/rgw/rgw_rest_bucket.cc
src/rgw/services/svc_bucket_sobj.cc

index 52520269e561b3e54e46a8e651ac3d8aa392ef0a..ea61006ed26c90234a0df12ab577c346531a62f0 100644 (file)
@@ -224,6 +224,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
index 13aeedf03d6eb980123d43d0a500d47b788175f1..5272a17d08d1e9ed849c8a586299e13e57fd4b67 100644 (file)
@@ -639,5 +639,4 @@ int RGWSI_Bucket_SObj::read_buckets_stats(RGWSI_Bucket_X_Ctx& ctx,
   }
 
   return m.size();
-}
-
+}
\ No newline at end of file