From 861a1a02785f2b91945a0c1c59d8d1523ddc51ce Mon Sep 17 00:00:00 2001 From: Aashish Sharma Date: Mon, 25 Sep 2023 13:46:58 +0530 Subject: [PATCH] mgr/dashboard: Fix user/bucket count in rgw overview dashboard Donot consider buckets/users count from daemons that have similar realm name Fixes: https://tracker.ceph.com/issues/62964 Signed-off-by: Aashish Sharma (cherry picked from commit bfdcabe9d967ab28040173107bfd3f94235e3921) --- src/pybind/mgr/dashboard/controllers/rgw.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/dashboard/controllers/rgw.py b/src/pybind/mgr/dashboard/controllers/rgw.py index 38963880bee..65c809ebec0 100644 --- a/src/pybind/mgr/dashboard/controllers/rgw.py +++ b/src/pybind/mgr/dashboard/controllers/rgw.py @@ -450,11 +450,22 @@ class RgwBucketUi(RgwBucket): users_count = 0 daemon_object = RgwDaemon() daemons = json.loads(daemon_object.list()) + unique_realms = set() for daemon in daemons: - buckets = json.loads(RgwBucket.list(self, daemon_name=daemon['id'])) - users = json.loads(RgwUser.list(self, daemon_name=daemon['id'])) - users_count += len(users) - buckets_count += len(buckets) + realm_name = daemon.get('realm_name', None) + if realm_name: + if realm_name not in unique_realms: + unique_realms.add(realm_name) + buckets = json.loads(RgwBucket.list(self, daemon_name=daemon['id'])) + users = json.loads(RgwUser.list(self, daemon_name=daemon['id'])) + users_count += len(users) + buckets_count += len(buckets) + else: + buckets = json.loads(RgwBucket.list(self, daemon_name=daemon['id'])) + users = json.loads(RgwUser.list(self, daemon_name=daemon['id'])) + users_count = len(users) + buckets_count = len(buckets) + return { 'buckets_count': buckets_count, 'users_count': users_count -- 2.39.5