]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: remove unused RGWBucketCreateLocalCR
authorCasey Bodley <cbodley@redhat.com>
Fri, 17 Mar 2023 15:11:05 +0000 (11:11 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 6 Nov 2023 16:07:23 +0000 (11:07 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/driver/rados/rgw_cr_tools.cc
src/rgw/driver/rados/rgw_cr_tools.h

index 94665a35aaa6920f45453ab37d782f921cf70cab..31119a25b2eb83728bf37ee85533dca5326dc3b1 100644 (file)
@@ -103,131 +103,6 @@ int RGWGetBucketInfoCR::Request::_send_request(const DoutPrefixProvider *dpp)
   return store->get_bucket(dpp, nullptr, params.tenant, params.bucket_name, &result->bucket, null_yield);
 }
 
-template<>
-int RGWBucketCreateLocalCR::Request::_send_request(const DoutPrefixProvider *dpp)
-{
-  CephContext *cct = store->ctx();
-  auto& zone_svc = store->svc()->zone;
-
-  const auto& user_info = params.user_info.get();
-  const auto& user = user_info->user_id;
-  const auto& bucket_name = params.bucket_name;
-  auto& placement_rule = params.placement_rule;
-
-  if (!placement_rule.empty() &&
-      !zone_svc->get_zone_params().valid_placement(placement_rule)) {
-    ldpp_dout(dpp, 0) << "placement target (" << placement_rule << ")"
-      << " doesn't exist in the placement targets of zonegroup"
-      << " (" << zone_svc->get_zonegroup().api_name << ")" << dendl;
-    return -ERR_INVALID_LOCATION_CONSTRAINT;
-  }
-
-  /* we need to make sure we read bucket info, it's not read before for this
-   * specific request */
-  RGWBucketInfo bucket_info;
-  map<string, bufferlist> bucket_attrs;
-
-  int ret = store->getRados()->get_bucket_info(store->svc(), user.tenant, bucket_name,
-                                 bucket_info, nullptr, null_yield, dpp, &bucket_attrs);
-  if (ret < 0 && ret != -ENOENT)
-    return ret;
-  bool bucket_exists = (ret != -ENOENT);
-
-  RGWAccessControlPolicy old_policy(cct);
-  ACLOwner bucket_owner;
-  bucket_owner.set_id(user);
-  bucket_owner.set_name(user_info->display_name);
-  if (bucket_exists) {
-    ret = rgw_op_get_bucket_policy_from_attr(dpp, cct, store, bucket_info,
-                                             bucket_attrs, &old_policy, null_yield);
-    if (ret >= 0)  {
-      if (old_policy.get_owner().get_id().compare(user) != 0) {
-        return -EEXIST;
-      }
-    }
-  }
-
-  RGWBucketInfo master_info;
-  rgw_bucket *pmaster_bucket = nullptr;
-  uint32_t *pmaster_num_shards = nullptr;
-  real_time creation_time;
-
-  string zonegroup_id = zone_svc->get_zonegroup().get_id();
-
-  if (bucket_exists) {
-    rgw_placement_rule selected_placement_rule;
-    rgw_bucket bucket;
-    bucket.tenant = user.tenant;
-    bucket.name = bucket_name;
-    ret = zone_svc->select_bucket_placement(dpp, *user_info, zonegroup_id,
-                                           placement_rule,
-                                           &selected_placement_rule, nullptr, null_yield);
-    if (selected_placement_rule != bucket_info.placement_rule) {
-      ldpp_dout(dpp, 0) << "bucket already exists on a different placement rule: "
-        << " selected_rule= " << selected_placement_rule
-        << " existing_rule= " << bucket_info.placement_rule << dendl;
-      return -EEXIST;
-    }
-  }
-
-  /* Encode special metadata first as we're using std::map::emplace under
-   * the hood. This method will add the new items only if the map doesn't
-   * contain such keys yet. */
-  RGWAccessControlPolicy_S3 policy(cct);
-  policy.create_canned(bucket_owner, bucket_owner, string()); /* default private policy */
-  bufferlist aclbl;
-  policy.encode(aclbl);
-  map<string, buffer::list> attrs;
-  attrs.emplace(std::move(RGW_ATTR_ACL), std::move(aclbl));
-
-  RGWQuotaInfo quota_info;
-  const RGWQuotaInfo * pquota_info = nullptr;
-
-  rgw_bucket bucket;
-  bucket.tenant = user.tenant;
-  bucket.name = bucket_name;
-
-  RGWBucketInfo info;
-  obj_version ep_objv;
-
-  ret = store->getRados()->create_bucket(*user_info, bucket, zonegroup_id,
-                                placement_rule, bucket_info.swift_ver_location,
-                                pquota_info, attrs,
-                                info, nullptr, &ep_objv, creation_time,
-                               pmaster_bucket, pmaster_num_shards, null_yield, dpp, true);
-
-
-  if (ret && ret != -EEXIST)
-    return ret;
-
-  bool existed = (ret == -EEXIST);
-
-  if (existed) {
-    if (info.owner != user) {
-      ldpp_dout(dpp, 20) << "NOTICE: bucket already exists under a different user (bucket=" << bucket << " user=" << user << " bucket_owner=" << info.owner << dendl;
-      return -EEXIST;
-    }
-    bucket = info.bucket;
-  }
-
-  ret = store->ctl()->bucket->link_bucket(user, bucket, info.creation_time, null_yield, dpp, false);
-  if (ret && !existed && ret != -EEXIST) {
-    /* if it exists (or previously existed), don't remove it! */
-    int r = store->ctl()->bucket->unlink_bucket(user, bucket, null_yield, dpp);
-    if (r < 0) {
-      ldpp_dout(dpp, 0) << "WARNING: failed to unlink bucket: ret=" << r << dendl;
-    }
-  } else if (ret == -EEXIST || (ret == 0 && existed)) {
-    ret = -ERR_BUCKET_EXISTS;
-  }
-
-  if (ret < 0) {
-    ldpp_dout(dpp, 0) << "ERROR: bucket creation (bucket=" << bucket << ") return ret=" << ret << dendl;
-  }
-
-  return ret;
-}
-
 template<>
 int RGWObjectSimplePutCR::Request::_send_request(const DoutPrefixProvider *dpp)
 {
index 4cd97aa82f5186e219d81301375c5355de14feb1..e68e386fb83670e7c379804652e6194c440c1a77 100644 (file)
@@ -45,14 +45,6 @@ struct rgw_get_bucket_info_result {
 
 using RGWGetBucketInfoCR = RGWSimpleAsyncCR<rgw_get_bucket_info_params, rgw_get_bucket_info_result>;
 
-struct rgw_bucket_create_local_params {
-  std::shared_ptr<RGWUserInfo> user_info;
-  std::string bucket_name;
-  rgw_placement_rule placement_rule;
-};
-
-using RGWBucketCreateLocalCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_create_local_params>;
-
 struct rgw_object_simple_put_params {
   RGWDataAccess::BucketRef bucket;
   rgw_obj_key key;