From 3fd2de8cc473a66a20cfd4e5265617f89760aeae Mon Sep 17 00:00:00 2001 From: Abhishek Lekshmanan Date: Mon, 2 Nov 2020 14:43:43 +0100 Subject: [PATCH] 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 (cherry picked from commit 8f4e00c474a3a3bd607acbe5324c9f8b8e14b2fd) --- src/rgw/rgw_tools.cc | 15 +++++++++++++++ src/rgw/rgw_tools.h | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/rgw/rgw_tools.cc b/src/rgw/rgw_tools.cc index ed0f872108ef..c383d0839388 100644 --- a/src/rgw/rgw_tools.cc +++ b/src/rgw/rgw_tools.cc @@ -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 *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 b842916fd876..1beaad396f0a 100644 --- a/src/rgw/rgw_tools.h +++ b/src/rgw/rgw_tools.h @@ -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 *pattrs = nullptr); const char *rgw_find_mime_by_ext(std::string& ext); -- 2.47.3