]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: refresh configs when dependencies change 33671/head
authorSage Weil <sage@redhat.com>
Mon, 2 Mar 2020 20:21:20 +0000 (14:21 -0600)
committerSage Weil <sage@redhat.com>
Tue, 3 Mar 2020 13:43:15 +0000 (07:43 -0600)
If a daemon config (e.g., prometheus) depends on other daemons'
existence, refresh the config if that list changes (e.g., new
node-exporter, mgr removed, etc.).

Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/cephadm/module.py

index 20d018bd5edc4594c1486bbf30c2553351cce70f..e46a960f59bb0715c09796e070910a177925b271 100644 (file)
@@ -1069,6 +1069,8 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                     if service_completion.exception is not None:
                         self.log.error(str(service_completion.exception))
 
+            self._refresh_configs()
+
             if self.upgrade_state and not self.upgrade_state.get('paused'):
                 upgrade_completion = self._do_upgrade()
                 if upgrade_completion:
@@ -2185,6 +2187,20 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                     spec.service_name(), spec, e))
         return r
 
+    def _refresh_configs(self):
+        daemons = self.cache.get_daemons()
+        for dd in daemons:
+            deps = self._calc_daemon_deps(dd.daemon_type, dd.daemon_id)
+            last_deps, last_config = self.cache.get_daemon_last_config_deps(
+                dd.hostname, dd.name())
+            if last_deps != deps:
+                self.log.debug('%s deps %s -> %s' % (dd.name(), last_deps,
+                                                     deps))
+                self.log.info('Reconfiguring %s (dependencies changed)...' % (
+                    dd.name()))
+                self._create_daemon(dd.daemon_type, dd.daemon_id,
+                                    dd.hostname, reconfig=True)
+
     def _add_daemon(self, daemon_type, spec,
                     create_func, config_func=None):
         """