]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/rados: pass SiteConfig into bucket_stats()
authorCasey Bodley <cbodley@redhat.com>
Tue, 3 Feb 2026 16:38:25 +0000 (11:38 -0500)
committerCasey Bodley <cbodley@redhat.com>
Tue, 21 Apr 2026 12:49:42 +0000 (08:49 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit ca6d50921286d31cf26096f80ed5a4287f539abd)

Conflicts:
src/rgw/driver/rados/rgw_bucket.cc missing restore stats

src/rgw/driver/rados/rgw_bucket.cc
src/rgw/driver/rados/rgw_bucket.h
src/rgw/driver/rados/rgw_rest_bucket.cc
src/rgw/radosgw-admin/radosgw-admin.cc

index 06cfa1b5db828265caa537504b01359d0cb11892..f3253830a30b62de4a5c1953cadf1c580cc6449c 100644 (file)
@@ -1511,7 +1511,7 @@ int RGWBucketAdminOp::sync_bucket(rgw::sal::Driver* driver, RGWBucketAdminOpStat
   return bucket.sync(op_state, dpp, y, err_msg);
 }
 
-static int bucket_stats(rgw::sal::Driver* driver,
+static int bucket_stats(rgw::sal::Driver* driver, const rgw::SiteConfig& site,
                         const std::string& tenant_name,
                         const std::string& bucket_name, Formatter* formatter,
                         const DoutPrefixProvider* dpp, optional_yield y) {
@@ -1705,6 +1705,7 @@ int RGWBucketAdminOp::limit_check(rgw::sal::Driver* driver,
 static int list_owner_bucket_info(const DoutPrefixProvider* dpp,
                                   optional_yield y,
                                   rgw::sal::Driver* driver,
+                                  const rgw::SiteConfig& site,
                                   const rgw_owner& owner,
                                   const std::string& tenant,
                                   const std::string& marker,
@@ -1757,7 +1758,7 @@ static int list_owner_bucket_info(const DoutPrefixProvider* dpp,
 
     for (const auto& ent : listing.buckets) {
       if (show_stats) {
-        bucket_stats(driver, tenant, ent.bucket.name, formatter, dpp, y);
+        bucket_stats(driver, site, tenant, ent.bucket.name, formatter, dpp, y);
       } else {
         formatter->dump_string("bucket", ent.bucket.name);
       }
@@ -1787,6 +1788,7 @@ static int list_owner_bucket_info(const DoutPrefixProvider* dpp,
 }
 
 int RGWBucketAdminOp::info(rgw::sal::Driver* driver,
+                          const rgw::SiteConfig& site,
                           RGWBucketAdminOpState& op_state,
                           RGWFormatterFlusher& flusher,
                           optional_yield y,
@@ -1809,7 +1811,7 @@ int RGWBucketAdminOp::info(rgw::sal::Driver* driver,
   const bool show_stats = op_state.will_fetch_stats();
   const rgw_user& user_id = op_state.get_user_id();
   if (!bucket_name.empty()) {
-    ret = bucket_stats(driver, user_id.tenant, bucket_name, formatter, dpp, y);
+    ret = bucket_stats(driver, site, user_id.tenant, bucket_name, formatter, dpp, y);
     if (ret < 0) {
       return ret;
     }
@@ -1824,10 +1826,10 @@ int RGWBucketAdminOp::info(rgw::sal::Driver* driver,
     if (!info.account_id.empty()) {
       ldpp_dout(dpp, 1) << "Listing buckets in user account "
           << info.account_id << dendl;
-      ret = list_owner_bucket_info(dpp, y, driver, info.account_id, uid.tenant,
+      ret = list_owner_bucket_info(dpp, y, driver, site, info.account_id, uid.tenant,
                                    op_state.marker, op_state.max_entries, show_stats, flusher);
     } else {
-      ret = list_owner_bucket_info(dpp, y, driver, uid, uid.tenant,
+      ret = list_owner_bucket_info(dpp, y, driver, site, uid, uid.tenant,
                                    op_state.marker, op_state.max_entries, show_stats, flusher);
     }
     if (ret < 0) {
@@ -1846,7 +1848,7 @@ int RGWBucketAdminOp::info(rgw::sal::Driver* driver,
       return ret;
     }
 
-    ret = list_owner_bucket_info(dpp, y, driver, account_id, info.tenant,
+    ret = list_owner_bucket_info(dpp, y, driver, site, account_id, info.tenant,
                                  op_state.marker, op_state.max_entries, show_stats, flusher);
     if (ret < 0) {
       return ret;
@@ -1864,7 +1866,7 @@ int RGWBucketAdminOp::info(rgw::sal::Driver* driver,
                                                   &truncated);
       for (auto& bucket_name : buckets) {
         if (show_stats) {
-          bucket_stats(driver, user_id.tenant, bucket_name, formatter, dpp, y);
+          bucket_stats(driver, site, user_id.tenant, bucket_name, formatter, dpp, y);
        } else {
           formatter->dump_string("bucket", bucket_name);
        }
index 1edfa6a9e31908f011a988f8e8a87dbeb2ec161c..9dd349a1420dc6cf264faf71e0dc454d770861a0 100644 (file)
@@ -397,7 +397,7 @@ public:
   static int remove_bucket(rgw::sal::Driver* driver, const rgw::SiteConfig& site, RGWBucketAdminOpState& op_state, optional_yield y,
                           const DoutPrefixProvider *dpp, bool bypass_gc = false, bool keep_index_consistent = true, bool forwarded_request = false);
   static int remove_object(rgw::sal::Driver* driver, RGWBucketAdminOpState& op_state, const DoutPrefixProvider *dpp, optional_yield y);
-  static int info(rgw::sal::Driver* driver, RGWBucketAdminOpState& op_state, RGWFormatterFlusher& flusher, optional_yield y, const DoutPrefixProvider *dpp);
+  static int info(rgw::sal::Driver* driver, const rgw::SiteConfig& site, RGWBucketAdminOpState& op_state, RGWFormatterFlusher& flusher, optional_yield y, const DoutPrefixProvider *dpp);
   static int limit_check(rgw::sal::Driver* driver, RGWBucketAdminOpState& op_state,
                         const std::list<std::string>& user_ids,
                         RGWFormatterFlusher& flusher, optional_yield y,
index f34ee9cd3522bd57d201ad6a0b99918c70ddd22d..3cee9389227b57596640ca51c7b8bcba10867ee4 100644 (file)
@@ -58,7 +58,7 @@ void RGWOp_Bucket_Info::execute(optional_yield y)
   op_state.set_bucket_name(bucket);
   op_state.set_fetch_stats(fetch_stats);
 
-  op_ret = RGWBucketAdminOp::info(driver, op_state, flusher, y, this);
+  op_ret = RGWBucketAdminOp::info(driver, *s->penv.site, op_state, flusher, y, this);
 }
 
 class RGWOp_Get_Policy : public RGWRESTOp {
index f1f24d34c6c86eb68468b1b34bd6a1d43984f7dc..b6aad39331612207602e399643c778c0c3d4127c 100644 (file)
@@ -7525,7 +7525,7 @@ int main(int argc, const char **argv)
         bucket_op.max_entries = max_entries;
       else
         bucket_op.max_entries = 0; /* for backward compatibility */
-      RGWBucketAdminOp::info(driver, bucket_op, stream_flusher, null_yield, dpp());
+      RGWBucketAdminOp::info(driver, *site, bucket_op, stream_flusher, null_yield, dpp());
     } else {
       int ret = init_bucket(tenant, bucket_name, bucket_id, &bucket);
       if (ret < 0) {
@@ -7647,7 +7647,7 @@ int main(int argc, const char **argv)
     else
       bucket_op.max_entries = 0; /* for backward compatibility */
 
-    int r = RGWBucketAdminOp::info(driver, bucket_op, stream_flusher, null_yield, dpp());
+    int r = RGWBucketAdminOp::info(driver, *site, bucket_op, stream_flusher, null_yield, dpp());
     if (r < 0) {
       cerr << "failure: " << cpp_strerror(-r) << ": " << err << std::endl;
       return posix_errortrans(-r);