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>
(cherry picked from commit
83d878f3d94a31c03ce94788236bd584c878a89c)
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