]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: remove placement_rule from rgw_link_bucket()
authorCasey Bodley <cbodley@redhat.com>
Tue, 31 Oct 2017 20:29:31 +0000 (16:29 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 1 Nov 2017 13:08:33 +0000 (09:08 -0400)
with the fallback in RGWRados::update_containers_stats(), we no longer
need to pass placement_rule into the cls_user_bucket_entry

this removes the dependency between bucket entrypoint metadata and its
bucket instance metadata during multisite sync

Fixes: http://tracker.ceph.com/issues/21990
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_bucket.cc
src/rgw/rgw_bucket.h
src/rgw/rgw_op.cc

index 3d6cbb3a87cb54389459c87ff4f42dfd290e3226..a481aa5b4bf788c38d32aaad0c12029339273719 100644 (file)
@@ -184,7 +184,6 @@ int rgw_link_bucket(RGWRados* const store,
                     const rgw_user& user_id,
                     rgw_bucket& bucket,
                     ceph::real_time creation_time,
-                    std::string placement_rule,
                     bool update_entrypoint)
 {
   int ret;
@@ -192,7 +191,6 @@ int rgw_link_bucket(RGWRados* const store,
   string& bucket_name = bucket.name;
 
   cls_user_bucket_entry new_bucket;
-  new_bucket.placement_rule = placement_rule;
 
   RGWBucketEntryPoint ep;
   RGWObjVersionTracker ot;
@@ -485,8 +483,7 @@ void check_bad_user_bucket_mapping(RGWRados *store, const rgw_user& user_id,
         if (fix) {
           cout << "fixing" << std::endl;
           r = rgw_link_bucket(store, user_id, actual_bucket,
-                              bucket_info.creation_time,
-                              bucket_info.placement_rule);
+                              bucket_info.creation_time);
           if (r < 0) {
             cerr << "failed to fix bucket: " << cpp_strerror(-r) << std::endl;
           }
@@ -904,7 +901,7 @@ int RGWBucket::link(RGWBucketAdminOpState& op_state, std::string *err_msg)
     }
 
     r = rgw_link_bucket(store, user_info.user_id, bucket_info.bucket,
-                        ceph::real_time(), bucket_info.placement_rule);
+                        ceph::real_time());
     if (r < 0) {
       return r;
     }
@@ -2127,15 +2124,7 @@ public:
 
     /* link bucket */
     if (be.linked) {
-      RGWObjectCtx ctx(store);
-      RGWBucketInfo bucket_info;
-      ret = store->get_bucket_info(ctx, tenant_name, bucket_name,
-                                   bucket_info, nullptr, nullptr);
-      if (ret < 0) {
-        return ret;
-      }
-      ret = rgw_link_bucket(store, be.owner, be.bucket, be.creation_time,
-                            bucket_info.placement_rule, false);
+      ret = rgw_link_bucket(store, be.owner, be.bucket, be.creation_time, false);
     } else {
       ret = rgw_unlink_bucket(store, be.owner, be.bucket.tenant,
                               be.bucket.name, false);
index 9ee89b3784aa946dee1d0fcc46b9626b8cbfe894..ccc3ee10c599841f1f42a88397876191835259e6 100644 (file)
@@ -180,7 +180,6 @@ extern int rgw_link_bucket(RGWRados* store,
                            const rgw_user& user_id,
                            rgw_bucket& bucket,
                            ceph::real_time creation_time,
-                           std::string placement_rule,
                            bool update_entrypoint = true);
 extern int rgw_unlink_bucket(RGWRados *store, const rgw_user& user_id,
                              const string& tenant_name, const string& bucket_name, bool update_entrypoint = true);
index ca9a6f40f70c506878812997c889bcd8f1149790..a9ba780774fbae26420f750f8b7f58fec766f8c1 100644 (file)
@@ -2778,7 +2778,7 @@ void RGWCreateBucket::execute()
   }
 
   op_ret = rgw_link_bucket(store, s->user->user_id, s->bucket,
-                          info.creation_time, info.placement_rule, false);
+                          info.creation_time, false);
   if (op_ret && !existed && op_ret != -EEXIST) {
     /* if it exists (or previously existed), don't remove it! */
     op_ret = rgw_unlink_bucket(store, s->user->user_id, s->bucket.tenant,
@@ -6308,8 +6308,8 @@ int RGWBulkUploadOp::handle_dir(const boost::string_ref path)
     bucket = out_info.bucket;
   }
 
-  op_ret = rgw_link_bucket(store, s->user->user_id,bucket, out_info.creation_time,
-                           out_info.placement_rule, false);
+  op_ret = rgw_link_bucket(store, s->user->user_id, bucket,
+                           out_info.creation_time, false);
   if (op_ret && !existed && op_ret != -EEXIST) {
     /* if it exists (or previously existed), don't remove it! */
     op_ret = rgw_unlink_bucket(store, s->user->user_id,