From 018807ef655068d699c70388e41284addee32040 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Mon, 29 Nov 2021 11:50:59 +0100 Subject: [PATCH] mgr/cephadm: serve.py: put _write_client_files into it's own method Signed-off-by: Sebastian Wagner --- src/pybind/mgr/cephadm/serve.py | 48 ++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 078f86fb827ca..3817514705b80 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -257,28 +257,7 @@ def refresh(host: str) -> None: self.log.debug(f"autotuning memory for {host}") self._autotune_host_memory(host) - # client files - updated_files = False - old_files = self.mgr.cache.get_host_client_files(host).copy() - for path, m in client_files.get(host, {}).items(): - mode, uid, gid, content, digest = m - if path in old_files: - match = old_files[path] == (digest, mode, uid, gid) - del old_files[path] - if match: - continue - self.log.info(f'Updating {host}:{path}') - self.mgr.ssh.write_remote_file(host, path, content, mode, uid, gid) - self.mgr.cache.update_client_file(host, path, digest, mode, uid, gid) - updated_files = True - for path in old_files.keys(): - self.log.info(f'Removing {host}:{path}') - cmd = ['rm', '-f', path] - self.mgr.ssh.check_execute_command(host, cmd) - updated_files = True - self.mgr.cache.removed_client_file(host, path) - if updated_files: - self.mgr.cache.save_host(host) + self._write_client_files(client_files, host) refresh(self.mgr.cache.get_hosts()) @@ -1038,6 +1017,31 @@ def _calc_client_files(self) -> Dict[str, Dict[str, Tuple[int, int, int, bytes, f'unable to calc client keyring {ks.entity} placement {ks.placement}: {e}') return client_files + def _write_client_files(self, + client_files: Dict[str, Dict[str, Tuple[int, int, int, bytes, str]]], + host: str) -> None: + updated_files = False + old_files = self.mgr.cache.get_host_client_files(host).copy() + for path, m in client_files.get(host, {}).items(): + mode, uid, gid, content, digest = m + if path in old_files: + match = old_files[path] == (digest, mode, uid, gid) + del old_files[path] + if match: + continue + self.log.info(f'Updating {host}:{path}') + self.mgr.ssh.write_remote_file(host, path, content, mode, uid, gid) + self.mgr.cache.update_client_file(host, path, digest, mode, uid, gid) + updated_files = True + for path in old_files.keys(): + self.log.info(f'Removing {host}:{path}') + cmd = ['rm', '-f', path] + self.mgr.ssh.check_execute_command(host, cmd) + updated_files = True + self.mgr.cache.removed_client_file(host, path) + if updated_files: + self.mgr.cache.save_host(host) + async def _create_daemon(self, daemon_spec: CephadmDaemonDeploySpec, reconfig: bool = False,