From: Yuval Lifshitz Date: Wed, 21 Jun 2023 13:02:50 +0000 (+0000) Subject: rgw/lua: expose correct value in Request.Bucket.User X-Git-Tag: v19.0.0~716^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=fdf77969055f92284135924eee3b0c9870160fb3;p=ceph-ci.git rgw/lua: expose correct value in Request.Bucket.User a change in zipper caused bucket->get_info().owner to return an empty string. so the lua value now expose: bucket->get_owner()->get_id() Signed-off-by: Yuval Lifshitz --- diff --git a/src/rgw/rgw_lua_request.cc b/src/rgw/rgw_lua_request.cc index 4fe4d2cd476..36fef1c8257 100644 --- a/src/rgw/rgw_lua_request.cc +++ b/src/rgw/rgw_lua_request.cc @@ -319,7 +319,8 @@ struct BucketMetaTable : public EmptyMetaTable { } else if (strcasecmp(index, "PlacementRule") == 0) { create_metatable(L, false, &(bucket->get_info().placement_rule)); } else if (strcasecmp(index, "User") == 0) { - create_metatable(L, false, &(bucket->get_info().owner)); + create_metatable(L, false, + const_cast(&bucket->get_owner()->get_id())); } else { return error_unknown_field(L, index, TableName()); } diff --git a/src/test/rgw/test_rgw_lua.cc b/src/test/rgw/test_rgw_lua.cc index 23687b61674..ca0c9ae1d3e 100644 --- a/src/test/rgw/test_rgw_lua.cc +++ b/src/test/rgw/test_rgw_lua.cc @@ -330,8 +330,8 @@ TEST(TestRGWLua, Bucket) assert(Request.Bucket.Quota.MaxObjects == -1) assert(tostring(Request.Bucket.Quota.Enabled)) assert(tostring(Request.Bucket.Quota.Rounded)) - assert(Request.Bucket.User.Id) - assert(Request.Bucket.User.Tenant) + assert(Request.Bucket.User.Id == "myuser") + assert(Request.Bucket.User.Tenant == "mytenant") )"; DEFINE_REQ_STATE; @@ -342,6 +342,7 @@ TEST(TestRGWLua, Bucket) b.marker = "mymarker"; b.bucket_id = "myid"; s.bucket.reset(new sal::RadosBucket(nullptr, b)); + s.bucket->set_owner(new sal::RadosUser(nullptr, rgw_user("mytenant", "myuser"))); const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, nullptr, script); ASSERT_EQ(rc, 0); @@ -685,16 +686,12 @@ TEST(TestRGWLua, User) DEFINE_REQ_STATE; - rgw_user u; - u.tenant = "mytenant"; - u.id = "myid"; - s.user.reset(new sal::RadosUser(nullptr, u)); + s.user.reset(new sal::RadosUser(nullptr, rgw_user("mytenant", "myid"))); const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, nullptr, script); ASSERT_EQ(rc, 0); } - TEST(TestRGWLua, UseFunction) { const std::string script = R"(