]> 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>
Mon, 6 Jun 2022 10:49:43 +0000 (16:19 +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>
src/rgw/rgw_tools.cc
src/rgw/rgw_tools.h

index 84390c3eae3093891216016a78cd0f20c3e880ef..3d9d709c4f31808e048e7eb0118f2dc996e3e40e 100644 (file)
@@ -138,6 +138,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 3cfa11a493e4711738d3ac40e2f5945f63f6e07f..8e3ea8a91ef52f77ec08a7fd134c9ca87ccfab85 100644 (file)
@@ -73,6 +73,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);