]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/cephadm/services/container.py
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / pybind / mgr / cephadm / services / container.py
1 import logging
2 from typing import List, Any, Tuple, Dict, cast
3
4 from ceph.deployment.service_spec import CustomContainerSpec
5
6 from .cephadmservice import CephadmService, CephadmDaemonDeploySpec
7
8 logger = logging.getLogger(__name__)
9
10
11 class CustomContainerService(CephadmService):
12 TYPE = 'container'
13
14 def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) \
15 -> CephadmDaemonDeploySpec:
16 assert self.TYPE == daemon_spec.daemon_type
17 daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec)
18 return daemon_spec
19
20 def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) \
21 -> Tuple[Dict[str, Any], List[str]]:
22 assert self.TYPE == daemon_spec.daemon_type
23 deps: List[str] = []
24 spec = cast(CustomContainerSpec, self.mgr.spec_store[daemon_spec.service_name].spec)
25 config: Dict[str, Any] = spec.config_json()
26 logger.debug(
27 'Generated configuration for \'%s\' service: config-json=%s, dependencies=%s' %
28 (self.TYPE, config, deps))
29 return config, deps