]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: base role md handler decl
authorAbhishek Lekshmanan <abhishek@suse.com>
Thu, 1 Oct 2020 12:42:32 +0000 (14:42 +0200)
committerPritha Srivastava <prsrivas@redhat.com>
Mon, 6 Jun 2022 10:49:42 +0000 (16:19 +0530)
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
src/rgw/rgw_role.cc
src/rgw/rgw_role.h
src/rgw/rgw_service.cc

index 5398c900be88c625baa92a81b71410704ee204dd..35161e2bcacf771178d53fb66af53a200811cfb0 100644 (file)
@@ -381,3 +381,8 @@ int RGWRoleCtl::delete_path(const std::string& role_id,
   });
 }
 
+RGWRoleMetadataHandler::RGWRoleMetadataHandler(RGWSI_Role *role_svc)
+{
+  base_init(role_svc->ctx(), role_svc->get_be_handler());
+  svc.role = role_svc;
+}
index 2fc39b1374852e2787c262ed589afd98f98fdd60..0332159ab5611f2041be9bc59301be67eb9a513b 100644 (file)
@@ -11,8 +11,9 @@
 #include "common/ceph_json.h"
 #include "common/ceph_context.h"
 #include "rgw/rgw_rados.h"
-//#include "svc_meta_be.h"
+#include "rgw_metadata.h"
 
+class RGWCtl;
 class RGWRados;
 class RGWRoleMetadataHandler;
 class RGWSI_Role;
@@ -146,6 +147,36 @@ public:
 WRITE_CLASS_ENCODER(RGWRole)
 } } // namespace rgw::sal
 
+//class RGWMetadataObject;
+
+class RGWRoleMetadataHandler: public RGWMetadataHandler_GenericMetaBE
+{
+  struct Svc {
+    RGWSI_Role *role{nullptr};
+  } svc;
+
+public:
+
+  RGWRoleMetadataHandler(RGWSI_Role *role_svc);
+
+  int do_get(RGWSI_MetaBackend_Handler::Op *op,
+            std::string& entry,
+            RGWMetadataObject **obj,
+            optional_yield y,
+       const DoutPrefixProvider *dpp) final
+  {
+    return 0; // TODO
+  }
+
+  int do_remove(RGWSI_MetaBackend_Handler::Op *op,
+               std::string& entry,
+               RGWObjVersionTracker& objv_tracker,
+               optional_yield y,
+    const DoutPrefixProvider *dpp) final {
+    return 0; // TODO
+  }
+};
+
 class RGWRoleCtl {
   struct Svc {
     RGWSI_Role *role {nullptr};
@@ -154,7 +185,10 @@ class RGWRoleCtl {
   RGWSI_MetaBackend_Handler *be_handler{nullptr};
 public:
   RGWRoleCtl(RGWSI_Role *_role_svc,
-            RGWRoleMetadataHandler *_rmhander);
+            RGWRoleMetadataHandler *_rmhandler) {
+    svc.role = _role_svc;
+    rmhandler = _rmhandler;
+  }
 
   struct PutParams {
     ceph::real_time mtime;
index aacdf35646d96e500d57044613faf7d12db9244a..9fd6a74a361a96dea456f67a1708509b2067253e 100644 (file)
@@ -378,6 +378,7 @@ int RGWCtlDef::init(RGWServices& svc, const DoutPrefixProvider *dpp)
                                 svc.bucket_sync,
                                 svc.bi));
   otp.reset(new RGWOTPCtl(svc.zone, svc.otp));
+  role = std::make_unique<RGWRoleCtl>(svc.role, static_cast<RGWRoleMetadataHandler*>(meta.role.get()));
 
   RGWBucketMetadataHandlerBase *bucket_meta_handler = static_cast<RGWBucketMetadataHandlerBase *>(meta.bucket.get());
   RGWBucketInstanceMetadataHandlerBase *bi_meta_handler = static_cast<RGWBucketInstanceMetadataHandlerBase *>(meta.bucket_instance.get());