]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: create ceph-exporter sock dir if it's not present 56316/head
authorAdam King <adking@redhat.com>
Mon, 19 Feb 2024 16:14:11 +0000 (11:14 -0500)
committerAdam King <adking@redhat.com>
Wed, 27 Mar 2024 20:12:32 +0000 (16:12 -0400)
Since this is usually /var/run/ceph/ which ends up getting
created by other daemons as well, it was common to see
ceph-exporter fail to deploy and then deploy fine after
once other daemons were down on the host. I don't see any
reason we can't just try to make the directory here instead
of bailing out.

Fixes: https://tracker.ceph.com/issues/64491wq
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit 862fca945f5bf48144b6a589f1d3cd971444daf7)

src/cephadm/cephadmlib/daemons/ceph.py

index a835cb477c12b4b191f66890534adccf4acd95c6..e6392876cc60d0fc9898ecb63b04c69f95747650 100644 (file)
@@ -299,8 +299,6 @@ class CephExporter(ContainerDaemonForm):
         self.prio_limit = config_json.get('prio-limit', 5)
         self.stats_period = config_json.get('stats-period', 5)
 
-        self.validate()
-
     @classmethod
     def init(
         cls, ctx: CephadmContext, fsid: str, daemon_id: Union[int, str]
@@ -371,6 +369,13 @@ class CephExporter(ContainerDaemonForm):
     def default_entrypoint(self) -> str:
         return self.entrypoint
 
+    def prepare_data_dir(self, data_dir: str, uid: int, gid: int) -> None:
+        if not os.path.exists(self.sock_dir):
+            os.mkdir(self.sock_dir)
+        # part of validation is for the sock dir, so we postpone
+        # it until now
+        self.validate()
+
 
 def get_ceph_mounts_for_type(
     ctx: CephadmContext, fsid: str, daemon_type: str