From: anrao19 <83442624+anrao19@users.noreply.github.com> Date: Wed, 17 Sep 2025 05:44:38 +0000 (+0530) Subject: Merge pull request #63089 from smanjara/wip-fix-object-lock-rule X-Git-Tag: testing/wip-vshankar-testing-20250917.163544-debug~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d037f401a7de15a4a87056d8c2c4beda0f6cc0e6;p=ceph-ci.git Merge pull request #63089 from smanjara/wip-fix-object-lock-rule rgw/multisite: sync put-object-lock-configuration --- d037f401a7de15a4a87056d8c2c4beda0f6cc0e6 diff --cc src/rgw/rgw_common.cc index ed6208f348c,d4da8fc7fc6..97b33d6ba7f --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@@ -2655,20 -2649,22 +2658,23 @@@ void RGWBucketInfo::decode_json(JSONOb if (!sp.empty()) { set_sync_policy(std::move(sp)); } + if (obj_lock_enabled()) { + JSONDecoder::decode_json("obj_lock", obj_lock, obj); + } } -void RGWUserInfo::generate_test_instances(list& o) +list RGWUserInfo::generate_test_instances() { - RGWUserInfo *i = new RGWUserInfo; - i->user_id = "user_id"; - i->display_name = "display_name"; - i->user_email = "user@email"; - i->account_id = "RGW12345678901234567"; - i->path = "/"; - i->create_date = ceph::real_time{std::chrono::hours(1)}; - i->tags.emplace("key", "value"); - i->group_ids.insert("group"); + list o; + RGWUserInfo i; + i.user_id = "user_id"; + i.display_name = "display_name"; + i.user_email = "user@email"; + i.account_id = "RGW12345678901234567"; + i.path = "/"; + i.create_date = ceph::real_time{std::chrono::hours(1)}; + i.tags.emplace("key", "value"); + i.group_ids.insert("group"); RGWAccessKey k1, k2; k1.id = "id1"; k1.key = "key1"; diff --cc src/rgw/rgw_object_lock.cc index 6b0bd0232a3,1853d84ccef..0cc88f2b273 --- a/src/rgw/rgw_object_lock.cc +++ b/src/rgw/rgw_object_lock.cc @@@ -44,17 -54,22 +54,23 @@@ void ObjectLockRule::dump_xml(Formatte } void ObjectLockRule::dump(Formatter *f) const { - f->open_object_section("default_retention"); - defaultRetention.dump(f); - f->close_section(); + encode_json("defaultRetention", defaultRetention, f); } -void ObjectLockRule::generate_test_instances(std::list& o) { - ObjectLockRule *obj = new ObjectLockRule; - o.push_back(obj); +std::list ObjectLockRule::generate_test_instances() { + std::list o; + o.emplace_back(); + return o; } + void RGWObjectLock::decode_json(JSONObj *obj) { + JSONDecoder::decode_json("enabled", enabled, obj); + JSONDecoder::decode_json("rule_exist", rule_exist, obj); + if (rule_exist) { + JSONDecoder::decode_json("rule", rule, obj); + } + } + void RGWObjectLock::decode_xml(XMLObj *obj) { string enabled_str; RGWXMLDecoder::decode_xml("ObjectLockEnabled", enabled_str, obj, true); diff --cc src/rgw/rgw_object_lock.h index cb6aa566975,cdfdbc7681c..645b6cdbb77 --- a/src/rgw/rgw_object_lock.h +++ b/src/rgw/rgw_object_lock.h @@@ -4,9 -4,9 +4,10 @@@ #pragma once #include +#include "include/encoding.h" #include "common/ceph_time.h" #include "common/iso_8601.h" + #include "common/ceph_json.h" #include "rgw_xml.h" class DefaultRetention