]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/posix: Create default user 63687/head
authorSamarah Uriarte <samarah.uriarte@ibm.com>
Wed, 16 Jul 2025 17:07:29 +0000 (12:07 -0500)
committerSamarah Uriarte <samarah.uriarte@ibm.com>
Wed, 16 Jul 2025 17:07:29 +0000 (12:07 -0500)
Signed-off-by: Samarah Uriarte <samarah.uriarte@ibm.com>
src/rgw/driver/posix/posixDB.cc
src/rgw/driver/posix/posixDB.h

index 82a8a7691eff64383e5e888cc7a201ccd452f9fb..5c4b0c7572b4500dafc348c81bb6fcba03764f6f 100644 (file)
@@ -8,6 +8,27 @@ using namespace std;
 
 namespace rgw { namespace store {
 
+int POSIXUserDB::ProcessOp(const DoutPrefixProvider *dpp, string_view Op, DBOpParams *params) {
+  int ret = -1;
+  shared_ptr<class DBOp> db_op;
+
+  db_op = getDBOp(dpp, Op, params);
+
+  if (!db_op) {
+    ldpp_dout(dpp, 0)<<"No db_op found for Op("<<Op<<")" << dendl;
+    return ret;
+  }
+  ret = db_op->Execute(dpp, params);
+
+  if (ret) {
+    ldpp_dout(dpp, 0)<<"In Process op Execute failed for fop(" << Op << ")" << dendl;
+  } else {
+    ldpp_dout(dpp, 20)<<"Successfully processed fop(" << Op << ")" << dendl;
+  }
+
+  return ret;
+}
+
 int POSIXUserDB::Initialize(string logfile, int loglevel)
 {
   int ret = -1;
@@ -45,6 +66,35 @@ int POSIXUserDB::Initialize(string logfile, int loglevel)
   ldpp_dout(dpp, 0) << "POSIXUserDB successfully initialized - name:" \
     << db_name << "" << dendl;
 
+  // Create default user that corresponds to vstart user (TODO: Temporary fix)
+  dbops = SQLiteDB::dbops;
+  DBOpParams params = {};
+  RGWAccessKey key("0555b35654ad1656d804", "h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q==");
+
+  params.user_table = user_table;
+  params.bucket_table = bucket_table;
+  params.quota_table = quota_table;
+  params.lc_entry_table = lc_entry_table;
+  params.lc_head_table = lc_head_table;
+  params.op.user.uinfo.display_name = "tester";
+  params.op.user.uinfo.user_id.id = "test";
+  params.op.user.uinfo.access_keys["default"] = key;
+
+  shared_ptr<class DBOp> db_op;
+  db_op = dbops.GetUser;
+  ret = db_op->Execute(dpp, &params);
+
+  if (ret == -ENOENT) {
+    db_op = dbops.InsertUser;
+    ret = db_op->Execute(dpp, &params);
+
+    if (ret) {
+      ldpp_dout(dpp, 0)<<"Op Execute failed for fop(InsertUser)" << dendl;
+    } else {
+      ldpp_dout(dpp, 20)<<"Successfully processed fop(InsertUser)" << dendl;
+    }
+  } 
+
   return ret;
 }
 
index 26f9e5aec11dadea31f8a91eb82a00ac6d1a2707..fbbc9372c9d76fd8007ef374d293ddc7a635cffe 100644 (file)
@@ -102,8 +102,13 @@ class RemovePOSIXUserOp: public SQLRemoveUser {};
 class POSIXUserDB : public SQLiteDB {
   private:
     const std::string db_name;
-    rgw::sal::Driver* driver;
     const std::string user_table;
+    const std::string bucket_table;
+    const std::string quota_table;
+    const std::string lc_head_table;
+    const std::string lc_entry_table;
+
+    rgw::sal::Driver* driver;
 
   protected:
     void *db;
@@ -114,6 +119,8 @@ class POSIXUserDB : public SQLiteDB {
     std::mutex mtx;
 
   public:
+    struct DBOps dbops;
+
     POSIXUserDB(std::string db_name, CephContext *_cct) : SQLiteDB(db_name, _cct),
                db_name(db_name),
                user_table(db_name+"_user_table"),
@@ -123,18 +130,19 @@ class POSIXUserDB : public SQLiteDB {
     /* POSIXUserDB() {}*/
 
     int Initialize(std::string logfile, int loglevel);
+    int ProcessOp(const DoutPrefixProvider *dpp, std::string_view Op, DBOpParams *params);
     int Destroy(const DoutPrefixProvider *dpp);
 
     CephContext* ctx() { return this->cct; }
 
     virtual int InitPrepareParams(const DoutPrefixProvider *dpp,
                                   DBOpPrepareParams &p_params,
-                                  DBOpParams* params) { return 0; } // TODO
-    virtual int createLCTables(const DoutPrefixProvider *dpp) { return 0; }
+                                  DBOpParams* params) override { return 0; }
+    virtual int createLCTables(const DoutPrefixProvider *dpp) override { return 0; }
 
-    virtual int ListAllBuckets(const DoutPrefixProvider *dpp, DBOpParams *params) { return 0; } // TODO
-    virtual int ListAllUsers(const DoutPrefixProvider *dpp, DBOpParams *params) { return 0; } // TODO
-    virtual int ListAllObjects(const DoutPrefixProvider *dpp, DBOpParams *params) { return 0; } // TODO
+    virtual int ListAllBuckets(const DoutPrefixProvider *dpp, DBOpParams *params) override { return 0; }
+    virtual int ListAllUsers(const DoutPrefixProvider *dpp, DBOpParams *params) override { return 0; }
+    virtual int ListAllObjects(const DoutPrefixProvider *dpp, DBOpParams *params) override { return 0; }
 };
 
 } } // namespace rgw::store