]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: tools: introduce `rgw_stat_system_obj`
authorAbhishek Lekshmanan <abhishek@suse.com>
Mon, 2 Nov 2020 13:43:43 +0000 (14:43 +0100)
committerPritha Srivastava <prsrivas@redhat.com>
Tue, 6 Sep 2022 04:55:13 +0000 (10:25 +0530)
Similar to the read and write system_obj interfaces this function stats an
object and returns the mtime & attrs if set.

Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
(cherry picked from commit 8f4e00c474a3a3bd607acbe5324c9f8b8e14b2fd)

src/rgw/rgw_tools.cc
src/rgw/rgw_tools.h

index ed0f872108ef1ca5db6566e98ef29c36b3396b06..c383d08393888d73163c60f43ad7457711aa7d08 100644 (file)
@@ -169,6 +169,21 @@ int rgw_put_system_obj(const DoutPrefixProvider *dpp,
   return ret;
 }
 
+int rgw_stat_system_obj(const DoutPrefixProvider *dpp,
+      RGWSysObjectCtx& obj_ctx, const rgw_pool& pool,
+                       const std::string& key, RGWObjVersionTracker *objv_tracker,
+                       real_time *pmtime, optional_yield y,
+                       std::map<std::string, bufferlist> *pattrs)
+{
+  rgw_raw_obj obj(pool, key);
+  auto sysobj = obj_ctx.get_obj(obj);
+  return sysobj.rop()
+               .set_attrs(pattrs)
+               .set_last_mod(pmtime)
+               .stat(y, dpp);
+}
+
+
 int rgw_get_system_obj(RGWSysObjectCtx& obj_ctx, const rgw_pool& pool, const string& key, bufferlist& bl,
                        RGWObjVersionTracker *objv_tracker, real_time *pmtime, optional_yield y, const DoutPrefixProvider *dpp, map<string, bufferlist> *pattrs,
                        rgw_cache_entry_info *cache_info,
index b842916fd876781ad0b970402ef81c0c0ec800c0..1beaad396f0a37f9e168bb1dfee5b43ddb49ba7a 100644 (file)
@@ -81,6 +81,11 @@ int rgw_get_system_obj(RGWSysObjectCtx& obj_ctx, const rgw_pool& pool, const std
 int rgw_delete_system_obj(const DoutPrefixProvider *dpp, 
                           RGWSI_SysObj *sysobj_svc, const rgw_pool& pool, const std::string& oid,
                           RGWObjVersionTracker *objv_tracker, optional_yield y);
+int rgw_stat_system_obj(const DoutPrefixProvider *dpp,
+                        RGWSysObjectCtx& obj_Ctx, const rgw_pool& pool,
+                        const std::string& key, RGWObjVersionTracker *objv_tracker,
+                        real_time *pmtime, optional_yield y,
+                        std::map<std::string, bufferlist> *pattrs = nullptr);
 
 const char *rgw_find_mime_by_ext(std::string& ext);