From: J. Eric Ivancich Date: Wed, 28 Jul 2021 17:52:29 +0000 (-0400) Subject: rgw: user stats showing 0 value for "size_utilized" and "size_kb_utilized" fields X-Git-Tag: v16.2.8~275^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F44171%2Fhead;p=ceph.git rgw: user stats showing 0 value for "size_utilized" and "size_kb_utilized" fields When accumulating user stats, the "utilized" fields are not looked at. Updates RGWStorageStats::dump so it only outputs the "utilized" data if they're updated. Signed-off-by: J. Eric Ivancich (cherry picked from commit 248fbce6b54f6c91e63b05861f8631ca64c8df81) Conflicts: src/rgw/rgw_admin.cc Cherry-pick notes: - conflicts due to change of interfaces for user and store --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index e49e1de819e8..da23c6558018 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -7536,7 +7536,8 @@ next: } } - RGWStorageStats stats; + constexpr bool omit_utilized_stats = false; + RGWStorageStats stats(omit_utilized_stats); ceph::real_time last_stats_sync; ceph::real_time last_stats_update; int ret = store->ctl()->user->read_stats(dpp(), user_id, &stats, null_yield, diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index 41413b077bb3..50e4ddb968f7 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -14,8 +14,7 @@ * */ -#ifndef CEPH_RGW_COMMON_H -#define CEPH_RGW_COMMON_H +#pragma once #include #include @@ -1121,17 +1120,20 @@ struct RGWStorageStats RGWObjCategory category; uint64_t size; uint64_t size_rounded; - uint64_t size_utilized{0}; //< size after compression, encryption uint64_t num_objects; + uint64_t size_utilized{0}; //< size after compression, encryption + bool dump_utilized; // whether dump should include utilized values - RGWStorageStats() + RGWStorageStats(bool _dump_utilized=true) : category(RGWObjCategory::None), size(0), size_rounded(0), - num_objects(0) {} + num_objects(0), + dump_utilized(_dump_utilized) + {} void dump(Formatter *f) const; -}; +}; // RGWStorageStats class RGWEnv; @@ -2328,5 +2330,3 @@ int decode_bl(bufferlist& bl, T& t) } return 0; } - -#endif diff --git a/src/rgw/rgw_json_enc.cc b/src/rgw/rgw_json_enc.cc index b3ceff68e757..d8d14bb2f2cd 100644 --- a/src/rgw/rgw_json_enc.cc +++ b/src/rgw/rgw_json_enc.cc @@ -686,10 +686,14 @@ void RGWStorageStats::dump(Formatter *f) const { encode_json("size", size, f); encode_json("size_actual", size_rounded, f); - encode_json("size_utilized", size_utilized, f); + if (dump_utilized) { + encode_json("size_utilized", size_utilized, f); + } encode_json("size_kb", rgw_rounded_kb(size), f); encode_json("size_kb_actual", rgw_rounded_kb(size_rounded), f); - encode_json("size_kb_utilized", rgw_rounded_kb(size_utilized), f); + if (dump_utilized) { + encode_json("size_kb_utilized", rgw_rounded_kb(size_utilized), f); + } encode_json("num_objects", num_objects, f); }