]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
RGW Zipper - Wrap zoneutils
authorDaniel Gryniewicz <dang@redhat.com>
Fri, 22 Jan 2021 15:36:23 +0000 (10:36 -0500)
committerDaniel Gryniewicz <dang@redhat.com>
Tue, 2 Mar 2021 12:35:05 +0000 (07:35 -0500)
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
src/rgw/rgw_lib.h
src/rgw/rgw_main.cc
src/rgw/rgw_process.cc
src/rgw/rgw_sal.h
src/rgw/rgw_sal_rados.cc
src/rgw/rgw_sal_rados.h
src/rgw/rgw_tools.cc

index 7e272f54aae51ee8dccca84c29f564f0d97473dd..469a411986ec3f9fcaba080634c81bcf8ce1b523 100644 (file)
@@ -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<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(id);
-      get_state()->trans_id = static_cast<rgw::sal::RGWRadosStore*>(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<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(id);
-       get_state()->trans_id = static_cast<rgw::sal::RGWRadosStore*>(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;
index 04dbdc4432b86522ee2ab271cdbb9f7f706d3231..7893c8eb1a0dbbddfa5d81742eaec3c13d6e0bb3 100644 (file)
@@ -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 */
index 87b62fd9619dafbd03da6a357c006e8b932e4ce3..eab6fde67e2106a7fac22c806b942ecf7f004f04 100644 (file)
@@ -207,8 +207,8 @@ int process_request(rgw::sal::RGWStore* const store,
     return ret;
   }
 
-  s->req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(req->id);
-  s->trans_id = static_cast<rgw::sal::RGWRadosStore*>(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;
 
index 9077043c78a0bf96b11a0a14a314be9e94273f4d..1b9e8c041e19f2dd70c39832c520f66e8a8ccc85 100644 (file)
@@ -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<Lifecycle> get_lifecycle(void) = 0;
     virtual std::unique_ptr<Completions> get_completions(void) = 0;
index 8fec427ca42989ea0645cfe72329898b6d8389e3..cf21f4fa86f62c577f8f16ac88c664a2271aaf8d 100644 (file)
@@ -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;
index d5d5d5740327c8e42aad68773922cf304be7cb1d..32cf792541622d02080ce171cfb78069a74af06b 100644 (file)
@@ -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<Lifecycle> get_lifecycle(void) override;
     virtual std::unique_ptr<Completions> get_completions(void) override;
index 41d21c67525a842c3b87036e9f6d60aace3af7e2..43a618c4a4a7ea605ba193734922ac960e283f4a 100644 (file)
@@ -481,7 +481,7 @@ int RGWDataAccess::Object::put(bufferlist& data,
 
   auto& owner = bucket->policy.get_owner();
 
-  string req_id = static_cast<rgw::sal::RGWRadosStore*>(store)->svc()->zone_utils->unique_id(static_cast<rgw::sal::RGWRadosStore*>(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,