From d4b070e03397127a8e761a62f0c769f084019265 Mon Sep 17 00:00:00 2001 From: Adam King Date: Thu, 23 Sep 2021 12:41:52 -0400 Subject: [PATCH] mgr/cephadm: kick serve loop if new metadata makes all hosts metadata up to date Signed-off-by: Adam King --- src/pybind/mgr/cephadm/agent.py | 5 +++++ src/pybind/mgr/cephadm/serve.py | 1 + 2 files changed, 6 insertions(+) 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: -- 2.39.5