From: Adam King Date: Thu, 23 Sep 2021 16:41:52 +0000 (-0400) Subject: mgr/cephadm: kick serve loop if new metadata makes all hosts metadata up to date X-Git-Tag: v17.1.0~816^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F42384%2Fhead;p=ceph.git mgr/cephadm: kick serve loop if new metadata makes all hosts metadata up to date Signed-off-by: Adam King --- diff --git a/src/pybind/mgr/cephadm/agent.py b/src/pybind/mgr/cephadm/agent.py index b99e7e9bdc497..d43f639264855 100644 --- a/src/pybind/mgr/cephadm/agent.py +++ b/src/pybind/mgr/cephadm/agent.py @@ -187,7 +187,12 @@ class HostData: self.mgr.cache.update_host_devices(host, ret.devices) if up_to_date: + was_out_of_date = not self.mgr.cache.all_host_metadata_up_to_date() self.mgr.cache.metadata_up_to_date[host] = True + if was_out_of_date and self.mgr.cache.all_host_metadata_up_to_date(): + self.mgr.log.info( + 'New metadata from agent has made all hosts up to date. Kicking serve loop') + self.mgr._kick_serve_loop() self.mgr.log.info( f'Received up-to-date metadata from agent on host {host}.') diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 49d254e6b4f49..f8d4398b56f6b 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -605,6 +605,7 @@ class CephadmServe: # end up stuck between wanting metadata to be up to date to apply specs # and needing to apply the agent spec to get up to date metadata if self.mgr.use_agent and not self.mgr.cache.all_host_metadata_up_to_date(): + self.log.info('Metadata not up to date on all hosts. Skipping non agent specs') try: specs.append(self.mgr.spec_store['agent'].spec) except Exception as e: