Skip to content

Commit 8dd9e9d

Browse files
author
Aashish Sharma
committed
mgr/dashboard: fix gateways section error:”404 - Not Found RGW Daemon not found: None”
A case was missed here where we do have a default realm created but no default_zonegorup, in that case, the existing behavior should prevail and that's not being handled. If a default_realm is created but no default_zonegroup is there, weshould continue getting the keys from daemon_name = next(iter(daemon_keys)) Fixes: https://tracker.ceph.com/issues/68376 Signed-off-by: Aashish Sharma <[email protected]>
1 parent bb2a220 commit 8dd9e9d

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

src/pybind/mgr/dashboard/services/rgw_client.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -288,21 +288,22 @@ def instance(userid: Optional[str] = None,
288288

289289
daemon_keys = RgwClient._daemons.keys()
290290
if not daemon_name:
291-
if len(daemon_keys) > 1:
292-
try:
293-
multiiste = RgwMultisite()
294-
default_zonegroup = multiiste.get_all_zonegroups_info()['default_zonegroup']
295-
296-
# Iterate through _daemons.values() to find the daemon with the
297-
# matching zonegroup_id
298-
for daemon in RgwClient._daemons.values():
299-
if daemon.zonegroup_id == default_zonegroup:
300-
daemon_name = daemon.name
301-
break
302-
except Exception: # pylint: disable=broad-except
303-
daemon_name = next(iter(daemon_keys))
304-
else:
305-
# Handle the case where there is only one or no key in _daemons
291+
try:
292+
if len(daemon_keys) > 1:
293+
default_zonegroup = (
294+
RgwMultisite()
295+
.get_all_zonegroups_info()['default_zonegroup']
296+
)
297+
if default_zonegroup:
298+
daemon_name = next(
299+
(daemon.name
300+
for daemon in RgwClient._daemons.values()
301+
if daemon.zonegroup_id == default_zonegroup),
302+
None
303+
)
304+
daemon_name = daemon_name or next(iter(daemon_keys))
305+
except Exception as e: # pylint: disable=broad-except
306+
logger.exception('Failed to determine default RGW daemon: %s', str(e))
306307
daemon_name = next(iter(daemon_keys))
307308

308309
# Discard all cached instances if any rgw setting has changed

0 commit comments

Comments
 (0)