]>
Commit | Line | Data |
---|---|---|
f91f0fd5 | 1 | import logging |
f67539c2 | 2 | from typing import List, Any, Tuple, Dict, cast |
f91f0fd5 TL |
3 | |
4 | from ceph.deployment.service_spec import CustomContainerSpec | |
5 | ||
f67539c2 | 6 | from .cephadmservice import CephadmService, CephadmDaemonDeploySpec |
f91f0fd5 TL |
7 | |
8 | logger = logging.getLogger(__name__) | |
9 | ||
10 | ||
11 | class CustomContainerService(CephadmService): | |
12 | TYPE = 'container' | |
13 | ||
f67539c2 TL |
14 | def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) \ |
15 | -> CephadmDaemonDeploySpec: | |
f91f0fd5 | 16 | assert self.TYPE == daemon_spec.daemon_type |
f67539c2 | 17 | daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec) |
f91f0fd5 TL |
18 | return daemon_spec |
19 | ||
f67539c2 | 20 | def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) \ |
f91f0fd5 TL |
21 | -> Tuple[Dict[str, Any], List[str]]: |
22 | assert self.TYPE == daemon_spec.daemon_type | |
f91f0fd5 | 23 | deps: List[str] = [] |
f67539c2 | 24 | spec = cast(CustomContainerSpec, self.mgr.spec_store[daemon_spec.service_name].spec) |
f91f0fd5 TL |
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 |