From: Adam King Date: Tue, 26 Oct 2021 19:33:57 +0000 (-0400) Subject: mgr/cephadm: agent: kick serve loop if number of daemons on host changes X-Git-Tag: v17.1.0~494^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ed1c91dc6bd4203671d643700e2d2428edb0c3d0;p=ceph.git mgr/cephadm: agent: kick serve loop if number of daemons on host changes In case something needs to be done about it in serve loop e.g. redeploying a daemon that has disappeared. Signed-off-by: Adam King --- diff --git a/src/pybind/mgr/cephadm/agent.py b/src/pybind/mgr/cephadm/agent.py index 1de205b71df..4ee5912ad4e 100644 --- a/src/pybind/mgr/cephadm/agent.py +++ b/src/pybind/mgr/cephadm/agent.py @@ -174,6 +174,7 @@ class HostData: self.mgr.cache.agent_timestamp[host] = datetime_now() error_daemons_old = set([dd.name() for dd in self.mgr.cache.get_error_daemons()]) + daemon_count_old = len(self.mgr.cache.get_daemons_by_host(host)) agents_down = [] for h in self.mgr.cache.get_hosts(): @@ -204,9 +205,12 @@ class HostData: ret = Devices.from_json(json.loads(data['volume'])) self.mgr.cache.update_host_devices(host, ret.devices) - if error_daemons_old != set([dd.name() for dd in self.mgr.cache.get_error_daemons()]): + if ( + error_daemons_old != set([dd.name() for dd in self.mgr.cache.get_error_daemons()]) + or daemon_count_old != len(self.mgr.cache.get_daemons_by_host(host)) + ): self.mgr.log.info( - f'Change detected in daemons in error state from {host} agent metadata. Kicking serve loop') + f'Change detected in state of daemons from {host} agent metadata. Kicking serve loop') self.mgr._kick_serve_loop() if up_to_date and ('ls' in data and data['ls']):