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())
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,