From dd342c32a818643d3484ee2bcf437bcfac7e734a Mon Sep 17 00:00:00 2001 From: Robin Gruyters <2082795+rgruyters@users.noreply.github.com> Date: Wed, 7 Aug 2024 11:39:15 +0200 Subject: [PATCH] fix(get_rgw_users): use metadata query for listing users The `/admin/user?format=json&list` only output the first 1000 users that it come across. `/admin/metadata/user?format=json` will output all users. The official Go library for Ceph still uses "metadata/user" for listing all users. (https://github.com/ceph/go-ceph/blob/master/rgw/admin/user.go#L136-L149) --- radosgw_usage_exporter.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/radosgw_usage_exporter.py b/radosgw_usage_exporter.py index c39d4df..fe4f1c1 100644 --- a/radosgw_usage_exporter.py +++ b/radosgw_usage_exporter.py @@ -430,17 +430,8 @@ def _get_rgw_users(self): """ API request to get users. """ - - rgw_users = self._request_data(query="user", args="list") - - if rgw_users and "keys" in rgw_users: - return rgw_users["keys"] - else: - # Compat with old Ceph versions (pre 12.2.13/13.2.9) - rgw_metadata_users = self._request_data(query="metadata/user", args="") - return rgw_metadata_users - - return + rgw_metadata_users = self._request_data(query="metadata/user", args="") + return rgw_metadata_users def _get_user_info(self, user): """