]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: change to read objectstore from spec
authorRongqi Sun <sunrongqi@huawei.com>
Mon, 13 Mar 2023 08:59:45 +0000 (16:59 +0800)
committerRongqi Sun <sunrongqi@huawei.com>
Mon, 13 Mar 2023 08:59:45 +0000 (16:59 +0800)
Signed-off-by: Rongqi Sun <sunrongqi@huawei.com>
src/cephadm/cephadm.py
src/pybind/mgr/cephadm/serve.py

index a0759c0feba73b0af86deeda1286964b5cde2169..e26f93ba9472c51ca36aaf8f38de7cf1bc83fad0 100755 (executable)
@@ -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',
index 3772f07cd1e0261ec9ee5188665cbd2afe382dc0..855f9fa2caf2419b241963470bb756039a13713b 100644 (file)
@@ -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,
                 )