]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: fix user.rgw.user-policy attr remove by modify user
authorivan <i.makarychev@tinkoff.ru>
Mon, 2 Oct 2023 12:25:56 +0000 (15:25 +0300)
committerivan <i.makarychev@tinkoff.ru>
Fri, 13 Oct 2023 10:36:22 +0000 (13:36 +0300)
Signed-off-by: ivan <i.makarychev@tinkoff.ru>
src/rgw/driver/rados/rgw_user.cc
src/rgw/driver/rados/rgw_user.h

index 4e70c855222139c3d7ed2684f96cd0b396ffcda1..469fe6fe68fd26301001c30311b47c82b305339a 100644 (file)
@@ -295,6 +295,15 @@ void RGWUserAdminOpState::set_user_version_tracker(RGWObjVersionTracker& objv_tr
   user->get_version_tracker() = objv_tracker;
 }
 
+void RGWUserAdminOpState::set_attrs(rgw::sal::Attrs& attrs)
+{
+  user->get_attrs() = attrs;
+}
+
+rgw::sal::Attrs RGWUserAdminOpState::get_attrs() {
+  return user->get_attrs();
+}
+
 const rgw_user& RGWUserAdminOpState::get_user_id()
 {
   return user->get_id();
@@ -1386,6 +1395,7 @@ int RGWUser::init(const DoutPrefixProvider *dpp, RGWUserAdminOpState& op_state,
   
   op_state.set_existing_user(found);
   if (found) {
+    op_state.set_attrs(user->get_attrs());
     op_state.set_user_info(user->get_info());
     op_state.set_populated();
     op_state.objv = user->get_version_tracker();
index aca905774a95130128b9f94f2d40d2408370c409..d5eb167daa3fb46b8caf3754f2a5d21cfe882c47 100644 (file)
@@ -313,6 +313,10 @@ struct RGWUserAdminOpState {
     max_buckets_specified = true;
   }
 
+  rgw::sal::Attrs get_attrs();
+
+  void set_attrs(rgw::sal::Attrs& attrs);
+
   void set_gen_access() {
     gen_access = true;
     key_op = true;