From: Casey Bodley Date: Tue, 3 Feb 2026 16:38:25 +0000 (-0500) Subject: rgw/rados: pass SiteConfig into bucket_stats() X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ca6d50921286d31cf26096f80ed5a4287f539abd;p=ceph.git rgw/rados: pass SiteConfig into bucket_stats() Signed-off-by: Casey Bodley --- diff --git a/src/rgw/driver/rados/rgw_bucket.cc b/src/rgw/driver/rados/rgw_bucket.cc index 408c889ba18a..773cda1a3f49 100644 --- a/src/rgw/driver/rados/rgw_bucket.cc +++ b/src/rgw/driver/rados/rgw_bucket.cc @@ -1574,7 +1574,7 @@ static int bucket_restore_stats(rgw::sal::Driver* driver, return 0; } -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, bool dump_restore_stats, Formatter* formatter, const DoutPrefixProvider* dpp, optional_yield y) { @@ -1774,6 +1774,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, @@ -1826,7 +1827,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, false, formatter, dpp, y); + bucket_stats(driver, site, tenant, ent.bucket.name, false, formatter, dpp, y); } else { formatter->dump_string("bucket", ent.bucket.name); } @@ -1856,6 +1857,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, @@ -1878,7 +1880,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, op_state.restore_stats, formatter, dpp, y); + ret = bucket_stats(driver, site, user_id.tenant, bucket_name, op_state.restore_stats, formatter, dpp, y); if (ret < 0) { return ret; } @@ -1893,10 +1895,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) { @@ -1915,7 +1917,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; @@ -1933,7 +1935,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, op_state.restore_stats, formatter, dpp, y); + bucket_stats(driver, site, user_id.tenant, bucket_name, op_state.restore_stats, formatter, dpp, y); } else { formatter->dump_string("bucket", bucket_name); } diff --git a/src/rgw/driver/rados/rgw_bucket.h b/src/rgw/driver/rados/rgw_bucket.h index 2bf40f6f45b8..f970d68e21c1 100644 --- a/src/rgw/driver/rados/rgw_bucket.h +++ b/src/rgw/driver/rados/rgw_bucket.h @@ -399,7 +399,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& user_ids, RGWFormatterFlusher& flusher, optional_yield y, diff --git a/src/rgw/driver/rados/rgw_rest_bucket.cc b/src/rgw/driver/rados/rgw_rest_bucket.cc index 2beaf5716cdf..39a3e59e33a3 100644 --- a/src/rgw/driver/rados/rgw_rest_bucket.cc +++ b/src/rgw/driver/rados/rgw_rest_bucket.cc @@ -61,7 +61,7 @@ void RGWOp_Bucket_Info::execute(optional_yield y) op_state.set_fetch_stats(fetch_stats); op_state.set_restore_stats(fetch_restore_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 { diff --git a/src/rgw/radosgw-admin/radosgw-admin.cc b/src/rgw/radosgw-admin/radosgw-admin.cc index a8d22d99e029..82f7c670f85d 100644 --- a/src/rgw/radosgw-admin/radosgw-admin.cc +++ b/src/rgw/radosgw-admin/radosgw-admin.cc @@ -7597,7 +7597,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) { @@ -7720,7 +7720,7 @@ int main(int argc, const char **argv) bucket_op.max_entries = 0; /* for backward compatibility */ bucket_op.set_restore_stats(bool(show_restore_stats)); - 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);