]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
RGW Zipper - consolidate two bucket remove APIs 41307/head
authorDaniel Gryniewicz <dang@redhat.com>
Tue, 11 May 2021 17:26:04 +0000 (13:26 -0400)
committerDaniel Gryniewicz <dang@redhat.com>
Wed, 12 May 2021 16:30:54 +0000 (12:30 -0400)
Bucket::remove_entrypoint() and Bucket::remove_instance_info() are only
used together, and take the same args.  Combine them into a single call.

Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
src/rgw/rgw_bucket.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_rados.cc
src/rgw/rgw_sal_rados.h

index 7df17043bdd535a5282447a43dbff3b54cf04b9c..f03d3919a543fd2715ab4b066eab088be604a17f 100644 (file)
@@ -1069,15 +1069,9 @@ int RGWBucketAdminOp::link(rgw::sal::Store* store, RGWBucketAdminOpState& op_sta
 
   if (*loc_bucket != *old_bucket) {
     // like RGWRados::delete_bucket -- excepting no bucket_index work.
-    r = old_bucket->remove_entrypoint(dpp, &ep_data.ep_objv, null_yield);
+    r = old_bucket->remove_metadata(dpp, &ep_data.ep_objv, null_yield);
     if (r < 0) {
-      set_err_msg(err, "failed to unlink old bucket endpoint " + old_bucket->get_tenant() + "/" + old_bucket->get_name());
-      return r;
-    }
-
-    r = old_bucket->remove_instance_info(dpp, &old_version, null_yield);
-    if (r < 0) {
-      set_err_msg(err, "failed to unlink old bucket info");
+      set_err_msg(err, "failed to unlink old bucket " + old_bucket->get_tenant() + "/" + old_bucket->get_name());
       return r;
     }
   }
index 5901b4749eb09474532b237897952719da24bc2d..e5c26f24e4cf35ed2e31284a59169c41c4579ea9 100644 (file)
@@ -392,8 +392,7 @@ class Bucket {
     virtual int check_bucket_shards(const DoutPrefixProvider* dpp) = 0;
     virtual int chown(const DoutPrefixProvider* dpp, User* new_user, User* old_user, optional_yield y, const std::string* marker = nullptr) = 0;
     virtual int put_instance_info(const DoutPrefixProvider* dpp, bool exclusive, ceph::real_time mtime) = 0;
-    virtual int remove_entrypoint(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) = 0;
-    virtual int remove_instance_info(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) = 0;
+    virtual int remove_metadata(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) = 0;
     virtual bool is_owner(User* user) = 0;
     virtual User* get_owner(void) { return owner; };
     virtual ACLOwner get_acl_owner(void) { return ACLOwner(info.owner); };
index 51d2a285850848c09633f6294670d4a629e77070..2c6f66121d9e5af5ee81f91c1dcb950e890cc888 100644 (file)
@@ -450,15 +450,14 @@ int RadosBucket::put_instance_info(const DoutPrefixProvider* dpp, bool exclusive
   return store->getRados()->put_bucket_instance_info(info, exclusive, mtime, &attrs, dpp);
 }
 
-int RadosBucket::remove_entrypoint(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y)
+int RadosBucket::remove_metadata(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y)
 {
-  return store->ctl()->bucket->remove_bucket_entrypoint_info(get_key(), y, dpp,
+  int r = store->ctl()->bucket->remove_bucket_entrypoint_info(get_key(), y, dpp,
                                            RGWBucketCtl::Bucket::RemoveParams()
                                            .set_objv_tracker(objv));
-}
+  if (r < 0)
+    return r;
 
-int RadosBucket::remove_instance_info(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y)
-{
   return store->ctl()->bucket->remove_bucket_instance_info(get_key(), info, y, dpp,
                                            RGWBucketCtl::BucketInstance::RemoveParams()
                                            .set_objv_tracker(objv));
index 0f1814e92b56958b3c706cec62e9681cc53e76f6..8f8edaa1e02bee55cf8d2ccb84410c4e6c6bfb75 100644 (file)
@@ -306,8 +306,7 @@ class RadosBucket : public Bucket {
     virtual int check_bucket_shards(const DoutPrefixProvider* dpp) override;
     virtual int chown(const DoutPrefixProvider* dpp, User* new_user, User* old_user, optional_yield y, const std::string* marker = nullptr) override;
     virtual int put_instance_info(const DoutPrefixProvider* dpp, bool exclusive, ceph::real_time mtime) override;
-    virtual int remove_entrypoint(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) override;
-    virtual int remove_instance_info(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) override;
+    virtual int remove_metadata(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) override;
     virtual bool is_owner(User* user) override;
     virtual int check_empty(const DoutPrefixProvider* dpp, optional_yield y) override;
     virtual int check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false) override;