From: Sebastian Wagner Date: Mon, 29 Nov 2021 10:50:59 +0000 (+0100) Subject: mgr/cephadm: serve.py: put _write_client_files into it's own method X-Git-Tag: v17.1.0~325^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=018807ef655068d699c70388e41284addee32040;p=ceph-ci.git mgr/cephadm: serve.py: put _write_client_files into it's own method Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 078f86fb827..3817514705b 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -257,28 +257,7 @@ class CephadmServe: 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 @@ class CephadmServe: 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,