From: Samarah Uriarte Date: Wed, 16 Jul 2025 17:07:29 +0000 (-0500) Subject: rgw/posix: Create default user X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=10038ec67eb87b4bfcc43484827b4c74602becc3;p=ceph.git rgw/posix: Create default user Signed-off-by: Samarah Uriarte --- diff --git a/src/rgw/driver/posix/posixDB.cc b/src/rgw/driver/posix/posixDB.cc index 82a8a7691eff..5c4b0c7572b4 100644 --- a/src/rgw/driver/posix/posixDB.cc +++ b/src/rgw/driver/posix/posixDB.cc @@ -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 db_op; + + db_op = getDBOp(dpp, Op, params); + + if (!db_op) { + ldpp_dout(dpp, 0)<<"No db_op found for 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 db_op; + db_op = dbops.GetUser; + ret = db_op->Execute(dpp, ¶ms); + + if (ret == -ENOENT) { + db_op = dbops.InsertUser; + ret = db_op->Execute(dpp, ¶ms); + + 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; } diff --git a/src/rgw/driver/posix/posixDB.h b/src/rgw/driver/posix/posixDB.h index 26f9e5aec11d..fbbc9372c9d7 100644 --- a/src/rgw/driver/posix/posixDB.h +++ b/src/rgw/driver/posix/posixDB.h @@ -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