From: Sebastian Wagner Date: Fri, 11 Sep 2020 11:09:28 +0000 (+0200) Subject: mgr/cephadm: move _deploy_etc_ceph_ceph_conf to serve.py X-Git-Tag: v15.2.8~14^2~27 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7b51e248eda6157088dd370c30f91f73b75e2625;p=ceph.git mgr/cephadm: move _deploy_etc_ceph_ceph_conf to serve.py Signed-off-by: Sebastian Wagner (cherry picked from commit 7fd92ec68065ff0e219ec7f55d6fbe41dd053835) --- diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index fd464fccf53a..703d526064ee 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -1346,30 +1346,6 @@ To check that the host is reachable: self.log.info(msg) return msg - def _deploy_etc_ceph_ceph_conf(self, host: str) -> Optional[str]: - config = self.get_minimal_ceph_conf() - - try: - with self._remote_connection(host) as tpl: - conn, connr = tpl - out, err, code = remoto.process.check( - conn, - ['mkdir', '-p', '/etc/ceph']) - if code: - return f'failed to create /etc/ceph on {host}: {err}' - out, err, code = remoto.process.check( - conn, - ['dd', 'of=/etc/ceph/ceph.conf'], - stdin=config.encode('utf-8') - ) - if code: - return f'failed to create /etc/ceph/ceph.conf on {host}: {err}' - self.cache.update_last_etc_ceph_ceph_conf(host) - self.cache.save_host(host) - except OrchestratorError as e: - return f'failed to create /etc/ceph/ceph.conf on {host}: {str(e)}' - return None - def get_minimal_ceph_conf(self) -> str: _, config, _ = self.check_mon_command({ "prefix": "config generate-minimal-conf", diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index f957a40bf7a1..95c0425f8c68 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -3,6 +3,11 @@ import json import logging from typing import TYPE_CHECKING, Optional +try: + import remoto +except ImportError: + remoto = None + from ceph.deployment import inventory import orchestrator @@ -115,7 +120,7 @@ class CephadmServe: if self.mgr.cache.host_needs_new_etc_ceph_ceph_conf(host): self.log.debug(f"deploying new /etc/ceph/ceph.conf on `{host}`") - r = self.mgr._deploy_etc_ceph_ceph_conf(host) + r = self._deploy_etc_ceph_ceph_conf(host) if r: bad_hosts.append(r) @@ -269,3 +274,27 @@ class CephadmServe: self.mgr.cache.osdspec_previews[search_host] = previews # Unset global 'pending' flag for host self.mgr.cache.loading_osdspec_preview.remove(search_host) + + def _deploy_etc_ceph_ceph_conf(self, host: str) -> Optional[str]: + config = self.mgr.get_minimal_ceph_conf() + + try: + with self.mgr._remote_connection(host) as tpl: + conn, connr = tpl + out, err, code = remoto.process.check( + conn, + ['mkdir', '-p', '/etc/ceph']) + if code: + return f'failed to create /etc/ceph on {host}: {err}' + out, err, code = remoto.process.check( + conn, + ['dd', 'of=/etc/ceph/ceph.conf'], + stdin=config.encode('utf-8') + ) + if code: + return f'failed to create /etc/ceph/ceph.conf on {host}: {err}' + self.mgr.cache.update_last_etc_ceph_ceph_conf(host) + self.mgr.cache.save_host(host) + except OrchestratorError as e: + return f'failed to create /etc/ceph/ceph.conf on {host}: {str(e)}' + return None