mgr/cephadm: get rbd-mirror daemon-id when checking for strays

Currently, list_servers() gets the rbd-mirror service-id instead
of the daemon-id so the daemon is marked as stray. This PR uses
that service-id to find the daemon-id and uses that to check if
the daemon is stray.

Fixes: https://tracker.ceph.com/issues/47639

Signed-off-by: Adam King <adking@redhat.com>
This commit is contained in:
Adam King 2020-09-23 12:52:37 -04:00
parent e089ff759f
commit 83d878f3d9

View File

@ -467,6 +467,14 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule,
missing_names = []
for s in daemons:
name = '%s.%s' % (s.get('type'), s.get('id'))
if s.get('type') == 'rbd-mirror':
defaults = defaultdict(lambda: None, {'id': None})
metadata = self.get_metadata("rbd-mirror", s.get('id'), default=defaults)
if metadata['id']:
name = '%s.%s' % (s.get('type'), metadata['id'])
else:
self.log.debug(
"Failed to find daemon id for rbd-mirror service %s" % (s.get('id')))
if host not in self.inventory:
missing_names.append(name)
host_num_daemons += 1