]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cls/rgw: expose cls_rgw_bucket_list_op for single shard
authorCasey Bodley <cbodley@redhat.com>
Fri, 19 Apr 2019 22:37:35 +0000 (18:37 -0400)
committerVicente Cheng <freeze.bilsted@gmail.com>
Thu, 2 May 2019 14:33:56 +0000 (14:33 +0000)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit cd1fc96c5ca5254eb8343509b11a59514d62e532)

src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h

index 1f25068f9f3cc5e329da39bbe32efea05475109a..97426ed7661747bf8e788e15f30ae8656fa77a25 100644 (file)
@@ -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<rgw_cls_list_ret>(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<rgw_cls_list_ret>(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);
 }
 
index 3ac3ea4cf69a655786e511ccbb2ae8a380d50eb9..dcfab4121e7054c1ef9c7a95b2789f57c2412c57 100644 (file)
@@ -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<int, cls_rgw_bi_log_list_ret>& result;
   BucketIndexShardsManager& marker_mgr;