From daf83a962d7652032d96caf24aa937172ef2a2b1 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Mon, 4 May 2020 14:01:13 +0200 Subject: [PATCH] mgr/cephadm: Add MdsService Signed-off-by: Sebastian Wagner --- src/pybind/mgr/cephadm/module.py | 30 ++++--------------- .../mgr/cephadm/services/cephadmservice.py | 24 +++++++++++++++ 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index 0ca90452bf6..b5fafa1768b 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -38,7 +38,7 @@ from orchestrator import OrchestratorError, OrchestratorValidationError, HostSpe from . import remotes from . import utils -from .services.cephadmservice import MonService, MgrService +from .services.cephadmservice import MonService, MgrService, MdsService from .services.nfs import NFSService from .services.osd import RemoveUtil, OSDRemoval, OSDService from .inventory import Inventory, SpecStore, HostCache @@ -425,6 +425,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): self.nfs_service = NFSService(self) self.mon_service = MonService(self) self.mgr_service = MgrService(self) + self.mds_service = MdsService(self) def shutdown(self): self.log.debug('shutdown') @@ -1930,7 +1931,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): 'mon': self.mon_service.create, 'mgr': self.mgr_service.create, 'osd': self.create_osds, # osds work a bit different. - 'mds': self._create_mds, + 'mds': self.mds_service.create, 'rgw': self._create_rgw, 'rbd-mirror': self._create_rbd_mirror, 'nfs': self.nfs_service.create, @@ -1942,7 +1943,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): 'iscsi': self._create_iscsi, } config_fns = { - 'mds': self._config_mds, + 'mds': self.mds_service.config, 'rgw': self._config_rgw, 'nfs': self.nfs_service.config, 'iscsi': self._config_iscsi, @@ -2230,33 +2231,12 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): return self._apply(spec) def add_mds(self, spec: ServiceSpec): - return self._add_daemon('mds', spec, self._create_mds, self._config_mds) + return self._add_daemon('mds', spec, self.mds_service.create, self.mds_service.config) @trivial_completion def apply_mds(self, spec: ServiceSpec): return self._apply(spec) - def _config_mds(self, spec): - # ensure mds_join_fs is set for these daemons - assert spec.service_id - ret, out, err = self.check_mon_command({ - 'prefix': 'config set', - 'who': 'mds.' + spec.service_id, - 'name': 'mds_join_fs', - 'value': spec.service_id, - }) - - def _create_mds(self, mds_id, host): - # get mgr. key - ret, keyring, err = self.check_mon_command({ - 'prefix': 'auth get-or-create', - 'entity': 'mds.' + mds_id, - 'caps': ['mon', 'profile mds', - 'osd', 'allow rwx', - 'mds', 'allow'], - }) - return self._create_daemon('mds', mds_id, host, keyring=keyring) - def add_rgw(self, spec): return self._add_daemon('rgw', spec, self._create_rgw, self._config_rgw) diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index 098cba995b3..db7264854c0 100644 --- a/src/pybind/mgr/cephadm/services/cephadmservice.py +++ b/src/pybind/mgr/cephadm/services/cephadmservice.py @@ -1,5 +1,6 @@ from typing import TYPE_CHECKING +from ceph.deployment.service_spec import ServiceSpec from orchestrator import OrchestratorError if TYPE_CHECKING: @@ -70,3 +71,26 @@ class MgrService(CephadmService): }) return self.mgr._create_daemon('mgr', mgr_id, host, keyring=keyring) + + +class MdsService(CephadmService): + def config(self, spec: ServiceSpec): + # ensure mds_join_fs is set for these daemons + assert spec.service_id + ret, out, err = self.mgr.check_mon_command({ + 'prefix': 'config set', + 'who': 'mds.' + spec.service_id, + 'name': 'mds_join_fs', + 'value': spec.service_id, + }) + + def create(self, mds_id, host) -> str: + # get mgr. key + ret, keyring, err = self.mgr.check_mon_command({ + 'prefix': 'auth get-or-create', + 'entity': 'mds.' + mds_id, + 'caps': ['mon', 'profile mds', + 'osd', 'allow rwx', + 'mds', 'allow'], + }) + return self.mgr._create_daemon('mds', mds_id, host, keyring=keyring) -- 2.39.5