From: Abhishek Lekshmanan Date: Mon, 2 Nov 2020 13:43:43 +0000 (+0100) Subject: rgw: tools: introduce `rgw_stat_system_obj` X-Git-Tag: v18.0.0~710^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8f4e00c474a3a3bd607acbe5324c9f8b8e14b2fd;p=ceph.git rgw: tools: introduce `rgw_stat_system_obj` 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 --- diff --git a/src/rgw/rgw_tools.cc b/src/rgw/rgw_tools.cc index 84390c3eae30..3d9d709c4f31 100644 --- a/src/rgw/rgw_tools.cc +++ b/src/rgw/rgw_tools.cc @@ -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 *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 *pattrs, rgw_cache_entry_info *cache_info, diff --git a/src/rgw/rgw_tools.h b/src/rgw/rgw_tools.h index 3cfa11a493e4..8e3ea8a91ef5 100644 --- a/src/rgw/rgw_tools.h +++ b/src/rgw/rgw_tools.h @@ -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 *pattrs = nullptr); const char *rgw_find_mime_by_ext(std::string& ext);