]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
svc: role: move prefix to Module
authorAbhishek Lekshmanan <abhishek@suse.com>
Tue, 20 Oct 2020 06:23:09 +0000 (08:23 +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/services/svc_role_rados.cc

index bd5461b8ab5365e2c8ba9a85765a72d9614c22f4..91bd293d7358ea2c49f8eb8bb0a506a5a89bb91a 100644 (file)
@@ -9,9 +9,11 @@
 
 class RGWSI_Role_Module : public RGWSI_MBSObj_Handler_Module {
   RGWSI_Role_RADOS::Svc& svc;
+  const std::string prefix;
 public:
-  RGWSI_Role_Module(RGWSI_Role_RADOS::Svc& _svc): RGWSI_MBSObj_Handler_Module("Role"),
-                                                  svc(_svc) {}
+  RGWSI_Role_Module(RGWSI_Role_RADOS::Svc& _svc): RGWSI_MBSObj_Handler_Module("roles"),
+                                                  svc(_svc),
+                                                  prefix(role_oid_prefix) {}
 
   void get_pool_and_oid(const std::string& key,
                         rgw_pool *pool,
@@ -22,24 +24,25 @@ public:
     }
 
     if (oid) {
-      *oid = key;
+      *oid = key_to_oid(key);
     }
   }
 
   bool is_valid_oid(const std::string& oid) override {
-    return boost::algorithm::starts_with(oid, role_oid_prefix);
+    return boost::algorithm::starts_with(oid, prefix);
   }
 
   std::string key_to_oid(const std::string& key) override {
-    return key;
+    return prefix + key;
   }
 
+  // This is called after `is_valid_oid` and is assumed to be a valid oid
   std::string oid_to_key(const std::string& oid) override {
-    return oid;
+    return oid.substr(prefix.size());
   }
 
   const std::string& get_oid_prefix() {
-    return role_oid_prefix;
+    return prefix;
   }
 };