]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: Add CrashService
authorSebastian Wagner <sebastian.wagner@suse.com>
Mon, 4 May 2020 12:36:03 +0000 (14:36 +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 44c36fce428b7a6416af9b160860a42edf34e1ee..61c40da32ed53e2302f3ee2b92d56ac66f130567 100644 (file)
@@ -37,7 +37,7 @@ from orchestrator import OrchestratorError, OrchestratorValidationError, HostSpe
 from . import remotes
 from . import utils
 from .services.cephadmservice import MonService, MgrService, MdsService, RgwService, \
-    RbdMirrorService
+    RbdMirrorService, CrashService
 from .services.nfs import NFSService
 from .services.osd import RemoveUtil, OSDRemoval, OSDService
 from .services.monitoring import GrafanaService, AlertmanagerService, PrometheusService, \
@@ -433,6 +433,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         self.alertmanager_service = AlertmanagerService(self)
         self.prometheus_service = PrometheusService(self)
         self.node_exporter_service = NodeExporterService(self)
+        self.crash_service = CrashService(self)
 
     def shutdown(self):
         self.log.debug('shutdown')
@@ -1946,7 +1947,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             'alertmanager': self.alertmanager_service.create,
             'prometheus': self.prometheus_service.create,
             'node-exporter': self.node_exporter_service.create,
-            'crash': self._create_crash,
+            'crash': self.crash_service.create,
             'iscsi': self._create_iscsi,
         }
         config_fns = {
@@ -2352,21 +2353,12 @@ api_secure = {api_secure}
     def add_crash(self, spec):
         # type: (ServiceSpec) -> AsyncCompletion
         return self._add_daemon('crash', spec,
-                                self._create_crash)
+                                self.crash_service.create)
 
     @trivial_completion
     def apply_crash(self, spec):
         return self._apply(spec)
 
-    def _create_crash(self, daemon_id, host):
-        ret, keyring, err = self.check_mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': 'client.crash.' + host,
-            'caps': ['mon', 'profile crash',
-                     'mgr', 'profile crash'],
-        })
-        return self._create_daemon('crash', daemon_id, host, keyring=keyring)
-
     def add_grafana(self, spec):
         # type: (ServiceSpec) -> AsyncCompletion
         return self._add_daemon('grafana', spec, self.grafana_service.create)
index 4c3874d8f2d3e7aa86ae92e6b052c5ee6177eeae..a810026810aff372c371f759a49c433048794e7c 100644 (file)
@@ -169,3 +169,14 @@ class RbdMirrorService(CephadmService):
         })
         return self.mgr._create_daemon('rbd-mirror', daemon_id, host,
                                        keyring=keyring)
+
+
+class CrashService(CephadmService):
+    def create(self, daemon_id, host) -> str:
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': 'client.crash.' + host,
+            'caps': ['mon', 'profile crash',
+                     'mgr', 'profile crash'],
+        })
+        return self.mgr._create_daemon('crash', daemon_id, host, keyring=keyring)