]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/telemetry: handle daemons with complex ids 48290/head
authorLaura Flores <lflores@redhat.com>
Wed, 28 Sep 2022 17:43:40 +0000 (17:43 +0000)
committerYuri Weinstein <yweinste@redhat.com>
Mon, 17 Oct 2022 19:48:13 +0000 (19:48 +0000)
Treating daemons as `<daemon_type>.x` caused a crash
in the Telemetry module since the current method does not cover a case
where a daemon id is more complex, i.e. `<daemon_type>.x.y`.

When we parse the daemon type and daemon id, we should
split it into a maximum of two pieces rather than splitting
it by every `.` character. Specifying `1` in the Python
.split() function will limit the split to a maximum of two items.

Fixes: https://tracker.ceph.com/issues/57700
Signed-off-by: Laura Flores <lflores@redhat.com>
(cherry picked from commit 97833a6a81fed7f868e1d544816cfbdf254fdb43)

src/pybind/mgr/telemetry/module.py

index 779cd529b32a749a870236ad14272c9c4941ba5b..f3d49055a5ee3f0206cbd0931753951169a4c5f1 100644 (file)
@@ -493,7 +493,7 @@ class Module(MgrModule):
 
         # Grab output from the "daemon.x heap stats" command
         for daemon in daemons:
-            daemon_type, daemon_id = daemon.split('.')
+            daemon_type, daemon_id = daemon.split('.', 1)
             heap_stats = self.parse_heap_stats(daemon_type, daemon_id)
             if heap_stats:
                 if (daemon_type != 'osd'):
@@ -568,7 +568,7 @@ class Module(MgrModule):
 
         # Grab output from the "dump_mempools" command
         for daemon in daemons:
-            daemon_type, daemon_id = daemon.split('.')
+            daemon_type, daemon_id = daemon.split('.', 1)
             cmd_dict = {
                 'prefix': 'dump_mempools',
                 'format': 'json'