From ee50798899789cea89906fe42fc85e52ba463a3b Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 18 Jul 2019 16:55:42 -0400 Subject: [PATCH] rgw: simplify RGWBucketCtl params with default arguments Signed-off-by: Casey Bodley --- src/rgw/rgw_bucket.cc | 25 +++++++++---------------- src/rgw/rgw_bucket.h | 29 ++++++++++++++++++++--------- src/rgw/rgw_reshard.cc | 3 +-- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 08cc385a78f..6e31cb49e4b 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -2999,9 +2999,8 @@ int RGWBucketCtl::call(std::function f) { int RGWBucketCtl::read_bucket_entrypoint_info(const rgw_bucket& bucket, RGWBucketEntryPoint *info, optional_yield y, - ceph::optional_ref_default _params) + const Bucket::GetParams& params) { - auto& params = *_params; return bm_handler->call(params.bectx_params, [&](RGWSI_Bucket_EP_Ctx& ctx) { return svc.bucket->read_bucket_entrypoint_info(ctx, RGWSI_Bucket::get_entrypoint_meta_key(bucket), @@ -3018,9 +3017,8 @@ int RGWBucketCtl::read_bucket_entrypoint_info(const rgw_bucket& bucket, int RGWBucketCtl::store_bucket_entrypoint_info(const rgw_bucket& bucket, RGWBucketEntryPoint& info, optional_yield y, - ceph::optional_ref_default _params) + const Bucket::PutParams& params) { - auto& params = *_params; return bm_handler->call([&](RGWSI_Bucket_EP_Ctx& ctx) { return svc.bucket->store_bucket_entrypoint_info(ctx, RGWSI_Bucket::get_entrypoint_meta_key(bucket), @@ -3035,9 +3033,8 @@ int RGWBucketCtl::store_bucket_entrypoint_info(const rgw_bucket& bucket, int RGWBucketCtl::remove_bucket_entrypoint_info(const rgw_bucket& bucket, optional_yield y, - ceph::optional_ref_default _params) + const Bucket::RemoveParams& params) { - auto& params = *_params; return bm_handler->call([&](RGWSI_Bucket_EP_Ctx& ctx) { return svc.bucket->remove_bucket_entrypoint_info(ctx, RGWSI_Bucket::get_entrypoint_meta_key(bucket), @@ -3049,9 +3046,8 @@ int RGWBucketCtl::remove_bucket_entrypoint_info(const rgw_bucket& bucket, int RGWBucketCtl::read_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo *info, optional_yield y, - ceph::optional_ref_default _params) + const BucketInstance::GetParams& params) { - auto& params = *_params; int ret = bmi_handler->call(params.bectx_params, [&](RGWSI_Bucket_BI_Ctx& ctx) { return svc.bucket->read_bucket_instance_info(ctx, RGWSI_Bucket::get_bi_meta_key(bucket), @@ -3077,11 +3073,10 @@ int RGWBucketCtl::read_bucket_instance_info(const rgw_bucket& bucket, int RGWBucketCtl::read_bucket_info(const rgw_bucket& bucket, RGWBucketInfo *info, optional_yield y, - ceph::optional_ref_default _params, + const BucketInstance::GetParams& params, RGWObjVersionTracker *ep_objv_tracker) { const rgw_bucket *b = &bucket; - auto& params = *_params; std::optional ep; @@ -3124,9 +3119,8 @@ int RGWBucketCtl::do_store_bucket_instance_info(RGWSI_Bucket_BI_Ctx& ctx, const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default _params) + const BucketInstance::PutParams& params) { - auto& params = *_params; if (params.objv_tracker) { info.objv_tracker = *params.objv_tracker; } @@ -3144,19 +3138,18 @@ int RGWBucketCtl::do_store_bucket_instance_info(RGWSI_Bucket_BI_Ctx& ctx, int RGWBucketCtl::store_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default _params) + const BucketInstance::PutParams& params) { return bmi_handler->call([&](RGWSI_Bucket_BI_Ctx& ctx) { - return do_store_bucket_instance_info(ctx, bucket, info, y, _params); + return do_store_bucket_instance_info(ctx, bucket, info, y, params); }); } int RGWBucketCtl::remove_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default _params) + const BucketInstance::RemoveParams& params) { - auto& params = *_params; if (params.objv_tracker) { info.objv_tracker = *params.objv_tracker; } diff --git a/src/rgw/rgw_bucket.h b/src/rgw/rgw_bucket.h index 8b8444b6f11..e9d0d14c8b8 100644 --- a/src/rgw/rgw_bucket.h +++ b/src/rgw/rgw_bucket.h @@ -20,7 +20,6 @@ #include "common/Formatter.h" #include "common/lru_map.h" #include "common/ceph_time.h" -#include "common/optional_ref_default.h" #include "rgw_formats.h" @@ -602,6 +601,8 @@ public: boost::optional refresh_version; std::optional bectx_params; + GetParams() {} + GetParams& set_objv_tracker(RGWObjVersionTracker *_objv_tracker) { objv_tracker = _objv_tracker; return *this; @@ -639,6 +640,8 @@ public: bool exclusive{false}; map *attrs{nullptr}; + PutParams() {} + PutParams& set_objv_tracker(RGWObjVersionTracker *_objv_tracker) { objv_tracker = _objv_tracker; return *this; @@ -663,6 +666,8 @@ public: struct RemoveParams { RGWObjVersionTracker *objv_tracker{nullptr}; + RemoveParams() {} + RemoveParams& set_objv_tracker(RGWObjVersionTracker *_objv_tracker) { objv_tracker = _objv_tracker; return *this; @@ -679,6 +684,8 @@ public: RGWObjVersionTracker *objv_tracker{nullptr}; std::optional bectx_params; + GetParams() {} + GetParams& set_mtime(ceph::real_time *_mtime) { mtime = _mtime; return *this; @@ -718,6 +725,8 @@ public: map *attrs{nullptr}; RGWObjVersionTracker *objv_tracker{nullptr}; + PutParams() {} + PutParams& set_orig_info(RGWBucketInfo *pinfo) { orig_info = pinfo; return *this; @@ -747,6 +756,8 @@ public: struct RemoveParams { RGWObjVersionTracker *objv_tracker{nullptr}; + RemoveParams() {} + RemoveParams& set_objv_tracker(RGWObjVersionTracker *_objv_tracker) { objv_tracker = _objv_tracker; return *this; @@ -758,28 +769,28 @@ public: int read_bucket_entrypoint_info(const rgw_bucket& bucket, RGWBucketEntryPoint *info, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const Bucket::GetParams& params = {}); int store_bucket_entrypoint_info(const rgw_bucket& bucket, RGWBucketEntryPoint& info, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const Bucket::PutParams& params = {}); int remove_bucket_entrypoint_info(const rgw_bucket& bucket, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const Bucket::RemoveParams& params = {}); /* bucket instance */ int read_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo *info, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const BucketInstance::GetParams& params = {}); int store_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const BucketInstance::PutParams& params = {}); int remove_bucket_instance_info(const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default params = std::nullopt); + const BucketInstance::RemoveParams& params = {}); /* * bucket_id may or may not be provided @@ -790,7 +801,7 @@ public: int read_bucket_info(const rgw_bucket& bucket, RGWBucketInfo *info, optional_yield y, - ceph::optional_ref_default _params = std::nullopt, + const BucketInstance::GetParams& params = {}, RGWObjVersionTracker *ep_objv_tracker = nullptr); @@ -830,7 +841,7 @@ private: const rgw_bucket& bucket, RGWBucketInfo& info, optional_yield y, - ceph::optional_ref_default params); + const BucketInstance::PutParams& params); int do_store_linked_bucket_info(RGWSI_Bucket_X_Ctx& ctx, RGWBucketInfo& info, diff --git a/src/rgw/rgw_reshard.cc b/src/rgw/rgw_reshard.cc index 36f0acb43e5..7b33d4ec0dc 100644 --- a/src/rgw/rgw_reshard.cc +++ b/src/rgw/rgw_reshard.cc @@ -740,8 +740,7 @@ error_out: ret2 = store->ctl.bucket->remove_bucket_instance_info(new_bucket_info.bucket, new_bucket_info, - null_yield, - std::nullopt); + null_yield); if (ret2 < 0) { lderr(store->ctx()) << "Error: " << __func__ << " failed to clean bucket info object \"" << -- 2.39.5