]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: Add RbdMirrorService
authorSebastian Wagner <sebastian.wagner@suse.com>
Mon, 4 May 2020 12:11:24 +0000 (14:11 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Thu, 7 May 2020 11:06:01 +0000 (13:06 +0200)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/services/cephadmservice.py

index d6c38f6b37846d0fc276ee238ae23c15795d0c01..3df349af9d052ae9d01dc7e027b2130e36eb2177 100644 (file)
@@ -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):
index 900783b720927bdaee02b895409e97ce75444a2a..4c3874d8f2d3e7aa86ae92e6b052c5ee6177eeae 100644 (file)
@@ -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)