Skip to content

Commit d84c7b3

Browse files
mgr/cephadm: move logic determining name in stray func
Encapsulate the logic determining the name of a stray service into a method reducing the length and levels of indent in the stray checker function. Signed-off-by: John Mulligan <[email protected]>
1 parent a64e1d5 commit d84c7b3

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

src/pybind/mgr/cephadm/serve.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -495,23 +495,7 @@ def _check_for_strays(self) -> None:
495495
for s in daemons:
496496
daemon_id = s.get('id')
497497
assert daemon_id
498-
name = '%s.%s' % (s.get('type'), daemon_id)
499-
if s.get('type') in ['rbd-mirror', 'cephfs-mirror', 'rgw', 'rgw-nfs']:
500-
metadata = self.mgr.get_metadata(
501-
cast(str, s.get('type')), daemon_id, {})
502-
assert metadata is not None
503-
try:
504-
if s.get('type') == 'rgw-nfs':
505-
# https://tracker.ceph.com/issues/49573
506-
name = metadata['id'][:-4]
507-
else:
508-
name = '%s.%s' % (s.get('type'), metadata['id'])
509-
except (KeyError, TypeError):
510-
self.log.debug(
511-
"Failed to find daemon id for %s service %s" % (
512-
s.get('type'), s.get('id')
513-
)
514-
)
498+
name = self._service_reference_name(s.get('type'), daemon_id)
515499
if s.get('type') == 'tcmu-runner':
516500
# because we don't track tcmu-runner daemons in the host cache
517501
# and don't have a way to check if the daemon is part of iscsi service
@@ -539,6 +523,27 @@ def _check_for_strays(self) -> None:
539523
self.mgr.set_health_warning(
540524
'CEPHADM_STRAY_DAEMON', f'{len(daemon_detail)} stray daemon(s) not managed by cephadm', len(daemon_detail), daemon_detail)
541525

526+
def _service_reference_name(self, service_type: str, daemon_id: str) -> str:
527+
if service_type not in ['rbd-mirror', 'cephfs-mirror', 'rgw', 'rgw-nfs']:
528+
name = f'{service_type}.{daemon_id}'
529+
return name
530+
531+
metadata = self.mgr.get_metadata(service_type, daemon_id, {})
532+
assert metadata is not None
533+
try:
534+
if service_type == 'rgw-nfs':
535+
# https://tracker.ceph.com/issues/49573
536+
name = metadata['id'][:-4]
537+
else:
538+
name = '%s.%s' % (service_type, metadata['id'])
539+
except (KeyError, TypeError):
540+
self.log.debug(
541+
"Failed to find daemon id for %s service %s" % (
542+
service_type, daemon_id
543+
)
544+
)
545+
return name
546+
542547
def _check_for_moved_osds(self) -> None:
543548
self.log.debug('_check_for_moved_osds')
544549
all_osds: DefaultDict[int, List[orchestrator.DaemonDescription]] = defaultdict(list)

0 commit comments

Comments
 (0)