From: Rongqi Sun Date: Mon, 13 Mar 2023 08:59:45 +0000 (+0800) Subject: ceph-volume: change to read objectstore from spec X-Git-Tag: v19.0.0~1274^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d6351598ea01e7e4b2bab4dd7b56b37a5d76ce5c;p=ceph.git ceph-volume: change to read objectstore from spec Signed-off-by: Rongqi Sun --- diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index a0759c0feba..e26f93ba947 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -3513,11 +3513,9 @@ def deploy_daemon_units( ] else: osd_type = 'bluestore' - config_file = '/etc/ceph/ceph.conf' - if os.path.exists(config_file): - config = read_config(config_file) - if config.has_section('osd') and config.has_option('osd', 'osd_objectstore'): - osd_type = config.get('osd', 'osd_objectstore') + if 'objectstore' in ctx and ctx.objectstore: + osd_type = ctx.objectstore + cmd = [ 'activate', '--'+ osd_type, @@ -9746,6 +9744,10 @@ def _get_parser(): '--meta-json', help='JSON dict of additional metadata' ) + parser_deploy.add_argument( + '--objectstore', + help='Set object store' + ) parser_deploy.add_argument( '--extra-container-args', action='append', diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 3772f07cd1e..855f9fa2caf 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -1245,22 +1245,31 @@ class CephadmServe: 'Reconfiguring' if reconfig else 'Deploying', daemon_spec.name(), daemon_spec.host)) + cmd = [ + '--name', daemon_spec.name(), + '--meta-json', json.dumps({ + 'service_name': daemon_spec.service_name, + 'ports': daemon_spec.ports, + 'ip': daemon_spec.ip, + 'deployed_by': self.mgr.get_active_mgr_digests(), + 'rank': daemon_spec.rank, + 'rank_generation': daemon_spec.rank_generation, + 'extra_container_args': extra_container_args, + 'extra_entrypoint_args': extra_entrypoint_args + }), + '--config-json', '-', + ] + + if daemon_spec.daemon_type == 'osd': + if hasattr(self.mgr.spec_store.active_specs.get(daemon_spec.service_name), "objectstore"): + osd_objectstore = self.mgr.spec_store.active_specs.get(daemon_spec.service_name).objectstore + else: + osd_objectstore = 'bluestore' + cmd += '--objectstore', osd_objectstore, + out, err, code = await self._run_cephadm( daemon_spec.host, daemon_spec.name(), 'deploy', - [ - '--name', daemon_spec.name(), - '--meta-json', json.dumps({ - 'service_name': daemon_spec.service_name, - 'ports': daemon_spec.ports, - 'ip': daemon_spec.ip, - 'deployed_by': self.mgr.get_active_mgr_digests(), - 'rank': daemon_spec.rank, - 'rank_generation': daemon_spec.rank_generation, - 'extra_container_args': extra_container_args, - 'extra_entrypoint_args': extra_entrypoint_args - }), - '--config-json', '-', - ] + daemon_spec.extra_args, + cmd + daemon_spec.extra_args, stdin=json.dumps(daemon_spec.final_config), image=image, )