From 57a1a9fa9659fd3aa0f3b7e4c2beeee273f64bd9 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Fri, 17 Mar 2023 11:11:05 -0400 Subject: [PATCH] rgw: remove unused RGWBucketCreateLocalCR Signed-off-by: Casey Bodley --- src/rgw/driver/rados/rgw_cr_tools.cc | 125 --------------------------- src/rgw/driver/rados/rgw_cr_tools.h | 8 -- 2 files changed, 133 deletions(-) diff --git a/src/rgw/driver/rados/rgw_cr_tools.cc b/src/rgw/driver/rados/rgw_cr_tools.cc index 94665a35aaa..31119a25b2e 100644 --- a/src/rgw/driver/rados/rgw_cr_tools.cc +++ b/src/rgw/driver/rados/rgw_cr_tools.cc @@ -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 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 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) { diff --git a/src/rgw/driver/rados/rgw_cr_tools.h b/src/rgw/driver/rados/rgw_cr_tools.h index 4cd97aa82f5..e68e386fb83 100644 --- a/src/rgw/driver/rados/rgw_cr_tools.h +++ b/src/rgw/driver/rados/rgw_cr_tools.h @@ -45,14 +45,6 @@ struct rgw_get_bucket_info_result { using RGWGetBucketInfoCR = RGWSimpleAsyncCR; -struct rgw_bucket_create_local_params { - std::shared_ptr user_info; - std::string bucket_name; - rgw_placement_rule placement_rule; -}; - -using RGWBucketCreateLocalCR = RGWSimpleWriteOnlyAsyncCR; - struct rgw_object_simple_put_params { RGWDataAccess::BucketRef bucket; rgw_obj_key key; -- 2.39.5