From: Sebastian Wagner Date: Mon, 4 May 2020 12:11:24 +0000 (+0200) Subject: mgr/cephadm: Add RbdMirrorService X-Git-Tag: v16.1.0~2396^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3747badbff093a8e72e98ad4bf3f84bc7b13d76b;p=ceph.git mgr/cephadm: Add RbdMirrorService Signed-off-by: Sebastian Wagner --- diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index d6c38f6b3784..3df349af9d05 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -38,7 +38,8 @@ from orchestrator import OrchestratorError, OrchestratorValidationError, HostSpe from . import remotes from . import utils -from .services.cephadmservice import MonService, MgrService, MdsService, RgwService +from .services.cephadmservice import MonService, MgrService, MdsService, RgwService, \ + RbdMirrorService from .services.nfs import NFSService from .services.osd import RemoveUtil, OSDRemoval, OSDService from .inventory import Inventory, SpecStore, HostCache @@ -427,6 +428,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): self.mgr_service = MgrService(self) self.mds_service = MdsService(self) self.rgw_service = RgwService(self) + self.rbd_mirror_service = RbdMirrorService(self) def shutdown(self): self.log.debug('shutdown') @@ -1934,7 +1936,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): 'osd': self.create_osds, # osds work a bit different. 'mds': self.mds_service.create, 'rgw': self.rgw_service.create, - 'rbd-mirror': self._create_rbd_mirror, + 'rbd-mirror': self.rbd_mirror_service.create, 'nfs': self.nfs_service.create, 'grafana': self._create_grafana, 'alertmanager': self._create_alertmanager, @@ -2310,17 +2312,7 @@ api_secure = {api_secure} return self._apply(spec) def add_rbd_mirror(self, spec): - return self._add_daemon('rbd-mirror', spec, self._create_rbd_mirror) - - def _create_rbd_mirror(self, daemon_id, host): - ret, keyring, err = self.check_mon_command({ - 'prefix': 'auth get-or-create', - 'entity': 'client.rbd-mirror.' + daemon_id, - 'caps': ['mon', 'profile rbd-mirror', - 'osd', 'profile rbd'], - }) - return self._create_daemon('rbd-mirror', daemon_id, host, - keyring=keyring) + return self._add_daemon('rbd-mirror', spec, self.rbd_mirror_service.create) @trivial_completion def apply_rbd_mirror(self, spec): diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index 900783b72092..4c3874d8f2d3 100644 --- a/src/pybind/mgr/cephadm/services/cephadmservice.py +++ b/src/pybind/mgr/cephadm/services/cephadmservice.py @@ -157,3 +157,15 @@ class RgwService(CephadmService): 'osd', 'allow rwx'], }) return self.mgr._create_daemon('rgw', rgw_id, host, keyring=keyring) + + +class RbdMirrorService(CephadmService): + def create(self, daemon_id, host) -> str: + ret, keyring, err = self.mgr.check_mon_command({ + 'prefix': 'auth get-or-create', + 'entity': 'client.rbd-mirror.' + daemon_id, + 'caps': ['mon', 'profile rbd-mirror', + 'osd', 'profile rbd'], + }) + return self.mgr._create_daemon('rbd-mirror', daemon_id, host, + keyring=keyring)