if not osd_uuid:
raise OrchestratorError('osd.%s not in osdmap' % daemon_spec.daemon_id)
daemon_spec.extra_args.extend(['--osd-fsid', osd_uuid])
+ spec = cast(DriveGroupSpec, self.mgr.spec_store.active_specs.get(daemon_spec.service_name, None))
+ if spec:
+ daemon_spec.extra_args.extend(['--objectstore', spec.objectstore])
+ final_conf = daemon_spec.final_config['config']
+ objectstore_str = '\tosd_objectstore = ' + spec.objectstore + '\n'
+ if final_conf.find("[osd]") != -1:
+ index = final_conf.index("[osd]") + 5
+ else:
+ index = final_conf.index("[global]") + 8
+ final_conf = final_conf[:index] + objectstore_str + final_conf[index:]
+ daemon_spec.final_config['config'] = final_conf
if reconfig:
daemon_spec.extra_args.append('--reconfig')
'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':
- osd_objectstore = getattr(self.mgr.spec_store.active_specs.get(daemon_spec.service_name), 'objectstore', 'bluestore')
- cmd += '--objectstore', osd_objectstore,
-
out, err, code = await self._run_cephadm(
daemon_spec.host, daemon_spec.name(), 'deploy',
- cmd + daemon_spec.extra_args,
+ [
+ '--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,
stdin=json.dumps(daemon_spec.final_config),
image=image,
)
await self._registry_login(host, json.loads(str(self.mgr.get_store('registry_credentials'))))
j = None
- try:
- j = await self._run_cephadm_json(host, '', 'inspect-image', [],
- image=image_name, no_fsid=True,
- error_ok=True)
- except OrchestratorError:
- pass
+ if not self.mgr.use_repo_digest:
+ try:
+ j = await self._run_cephadm_json(host, '', 'inspect-image', [],
+ image=image_name, no_fsid=True,
+ error_ok=True)
+ except OrchestratorError:
+ pass
if not j:
pullargs: List[str] = []