From ca614897822bef0540d89ef6c4100480b813ebc8 Mon Sep 17 00:00:00 2001 From: Daniel Gryniewicz Date: Fri, 22 Jan 2021 10:36:23 -0500 Subject: [PATCH] RGW Zipper - Wrap zoneutils Signed-off-by: Daniel Gryniewicz --- src/rgw/rgw_lib.h | 8 ++++---- src/rgw/rgw_main.cc | 1 + src/rgw/rgw_process.cc | 4 ++-- src/rgw/rgw_sal.h | 2 ++ src/rgw/rgw_sal_rados.cc | 13 ++++++++++++- src/rgw/rgw_sal_rados.h | 2 ++ src/rgw/rgw_tools.cc | 2 +- 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/rgw/rgw_lib.h b/src/rgw/rgw_lib.h index 7e272f54aae51..469a411986ec3 100644 --- a/src/rgw/rgw_lib.h +++ b/src/rgw/rgw_lib.h @@ -161,8 +161,8 @@ namespace rgw { RGWHandler::init(rados_ctx->get_store(), _s, io); get_state()->obj_ctx = rados_ctx; - get_state()->req_id = static_cast(store)->svc()->zone_utils->unique_id(id); - get_state()->trans_id = static_cast(store)->svc()->zone_utils->unique_trans_id(id); + get_state()->req_id = store->zone_unique_id(id); + get_state()->trans_id = store->zone_unique_trans_id(id); get_state()->bucket_tenant = tuser->get_tenant(); get_state()->set_user(tuser); @@ -200,8 +200,8 @@ namespace rgw { RGWHandler::init(rados_ctx.get_store(), &rstate, &io_ctx); get_state()->obj_ctx = &rados_ctx; - get_state()->req_id = static_cast(store)->svc()->zone_utils->unique_id(id); - get_state()->trans_id = static_cast(store)->svc()->zone_utils->unique_trans_id(id); + get_state()->req_id = store->zone_unique_id(id); + get_state()->trans_id = store->zone_unique_trans_id(id); ldpp_dout(get_state(), 2) << "initializing for trans_id = " << get_state()->trans_id.c_str() << dendl; diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index 04dbdc4432b86..7893c8eb1a0db 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -468,6 +468,7 @@ int radosgw_Main(int argc, const char **argv) RGWRESTMgr_Admin *admin_resource = new RGWRESTMgr_Admin; admin_resource->register_resource("usage", new RGWRESTMgr_Usage); admin_resource->register_resource("user", new RGWRESTMgr_User); + /* XXX dang part of this is RADOS specific */ admin_resource->register_resource("bucket", new RGWRESTMgr_Bucket); /*Registering resource for /admin/metadata */ diff --git a/src/rgw/rgw_process.cc b/src/rgw/rgw_process.cc index 87b62fd9619da..eab6fde67e210 100644 --- a/src/rgw/rgw_process.cc +++ b/src/rgw/rgw_process.cc @@ -207,8 +207,8 @@ int process_request(rgw::sal::RGWStore* const store, return ret; } - s->req_id = static_cast(store)->svc()->zone_utils->unique_id(req->id); - s->trans_id = static_cast(store)->svc()->zone_utils->unique_trans_id(req->id); + s->req_id = store->zone_unique_id(req->id); + s->trans_id = store->zone_unique_trans_id(req->id); s->host_id = store->get_host_id(); s->yield = yield; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 9077043c78a0b..1b9e8c041e19f 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -162,6 +162,8 @@ class RGWStore { virtual int defer_gc(const DoutPrefixProvider *dpp, RGWObjectCtx *rctx, RGWBucket* bucket, RGWObject* obj, optional_yield y) = 0; virtual Zone* get_zone() = 0; + virtual std::string zone_unique_id(uint64_t unique_num) = 0; + virtual std::string zone_unique_trans_id(const uint64_t unique_num) = 0; virtual int cluster_stat(RGWClusterStat& stats) = 0; virtual std::unique_ptr get_lifecycle(void) = 0; virtual std::unique_ptr get_completions(void) = 0; diff --git a/src/rgw/rgw_sal_rados.cc b/src/rgw/rgw_sal_rados.cc index 8fec427ca4298..cf21f4fa86f62 100644 --- a/src/rgw/rgw_sal_rados.cc +++ b/src/rgw/rgw_sal_rados.cc @@ -36,7 +36,8 @@ #include "services/svc_zone.h" #include "services/svc_tier_rados.h" #include "services/svc_quota.h" -#include "rgw/services/svc_config_key.h" +#include "services/svc_config_key.h" +#include "services/svc_zone_utils.h" #include "cls/rgw/cls_rgw_client.h" #include "rgw_pubsub.h" @@ -840,6 +841,16 @@ int RGWRadosStore::defer_gc(const DoutPrefixProvider *dpp, RGWObjectCtx *rctx, R return rados->defer_gc(dpp, rctx, bucket->get_info(), obj->get_obj(), y); } +std::string RGWRadosStore::zone_unique_id(uint64_t unique_num) +{ + return svc()->zone_utils->unique_id(unique_num); +} + +std::string RGWRadosStore::zone_unique_trans_id(const uint64_t unique_num) +{ + return svc()->zone_utils->unique_trans_id(unique_num); +} + int RGWRadosStore::cluster_stat(RGWClusterStat& stats) { rados_cluster_stat_t rados_stats; diff --git a/src/rgw/rgw_sal_rados.h b/src/rgw/rgw_sal_rados.h index d5d5d5740327c..32cf792541622 100644 --- a/src/rgw/rgw_sal_rados.h +++ b/src/rgw/rgw_sal_rados.h @@ -394,6 +394,8 @@ class RGWRadosStore : public RGWStore { virtual int defer_gc(const DoutPrefixProvider *dpp, RGWObjectCtx *rctx, RGWBucket* bucket, RGWObject* obj, optional_yield y) override; virtual Zone* get_zone() { return &zone; } + virtual std::string zone_unique_id(uint64_t unique_num) override; + virtual std::string zone_unique_trans_id(const uint64_t unique_num) override; virtual int cluster_stat(RGWClusterStat& stats) override; virtual std::unique_ptr get_lifecycle(void) override; virtual std::unique_ptr get_completions(void) override; diff --git a/src/rgw/rgw_tools.cc b/src/rgw/rgw_tools.cc index 41d21c67525a8..43a618c4a4a7e 100644 --- a/src/rgw/rgw_tools.cc +++ b/src/rgw/rgw_tools.cc @@ -481,7 +481,7 @@ int RGWDataAccess::Object::put(bufferlist& data, auto& owner = bucket->policy.get_owner(); - string req_id = static_cast(store)->svc()->zone_utils->unique_id(static_cast(store)->getRados()->get_new_req_id()); + string req_id = store->zone_unique_id(store->get_new_req_id()); using namespace rgw::putobj; AtomicObjectProcessor processor(&aio, store, b.get(), nullptr, -- 2.39.5