From: Casey Bodley Date: Fri, 19 Apr 2019 22:37:35 +0000 (-0400) Subject: cls/rgw: expose cls_rgw_bucket_list_op for single shard X-Git-Tag: v15.1.0~2873^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=cd1fc96c5ca5254eb8343509b11a59514d62e532;p=ceph-ci.git cls/rgw: expose cls_rgw_bucket_list_op for single shard Signed-off-by: Casey Bodley --- diff --git a/src/cls/rgw/cls_rgw_client.cc b/src/cls/rgw/cls_rgw_client.cc index 1f25068f9f3..97426ed7661 100644 --- a/src/cls/rgw/cls_rgw_client.cc +++ b/src/cls/rgw/cls_rgw_client.cc @@ -209,12 +209,13 @@ void cls_rgw_bucket_complete_op(ObjectWriteOperation& o, RGWModifyOp op, string& o.exec(RGW_CLASS, RGW_BUCKET_COMPLETE_OP, in); } -static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid, - const cls_rgw_obj_key& start_obj, - const string& filter_prefix, - uint32_t num_entries, bool list_versions, - BucketIndexAioManager *manager, - rgw_cls_list_ret *pdata) { +void cls_rgw_bucket_list_op(librados::ObjectReadOperation& op, + const cls_rgw_obj_key& start_obj, + const std::string& filter_prefix, + uint32_t num_entries, + bool list_versions, + rgw_cls_list_ret* result) +{ bufferlist in; rgw_cls_list_op call; call.start_obj = start_obj; @@ -223,8 +224,18 @@ static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid, call.list_versions = list_versions; encode(call, in); + op.exec(RGW_CLASS, RGW_BUCKET_LIST, in, new ClsBucketIndexOpCtx(result, NULL)); +} + +static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid, + const cls_rgw_obj_key& start_obj, + const string& filter_prefix, + uint32_t num_entries, bool list_versions, + BucketIndexAioManager *manager, + rgw_cls_list_ret *pdata) { librados::ObjectReadOperation op; - op.exec(RGW_CLASS, RGW_BUCKET_LIST, in, new ClsBucketIndexOpCtx(pdata, NULL)); + cls_rgw_bucket_list_op(op, start_obj, filter_prefix, + num_entries, list_versions, pdata); return manager->aio_operate(io_ctx, oid, &op); } diff --git a/src/cls/rgw/cls_rgw_client.h b/src/cls/rgw/cls_rgw_client.h index 3ac3ea4cf69..dcfab4121e7 100644 --- a/src/cls/rgw/cls_rgw_client.h +++ b/src/cls/rgw/cls_rgw_client.h @@ -422,6 +422,13 @@ public: start_obj(_start_obj), filter_prefix(_filter_prefix), num_entries(_num_entries), list_versions(_list_versions), result(list_results) {} }; +void cls_rgw_bucket_list_op(librados::ObjectReadOperation& op, + const cls_rgw_obj_key& start_obj, + const std::string& filter_prefix, + uint32_t num_entries, + bool list_versions, + rgw_cls_list_ret* result); + class CLSRGWIssueBILogList : public CLSRGWConcurrentIO { map& result; BucketIndexShardsManager& marker_mgr;