]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: get rbd-mirror daemon-id when checking for strays 37397/head
authorAdam King <adking@redhat.com>
Wed, 23 Sep 2020 16:52:37 +0000 (12:52 -0400)
committerAdam King <adking@redhat.com>
Fri, 25 Sep 2020 17:45:56 +0000 (13:45 -0400)
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>
src/pybind/mgr/cephadm/module.py

index a36a2206500619bae4f409f729324cc698beb1a1..2681fbfac5a2ee197245f60e8ea83533d2760411 100644 (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