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
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')
'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,
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):
'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)