]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/telemetry: handle daemons with complex ids
authorLaura Flores <lflores@redhat.com>
Wed, 28 Sep 2022 17:17:17 +0000 (17:17 +0000)
committerLaura Flores <lflores@redhat.com>
Wed, 28 Sep 2022 17:17:17 +0000 (17:17 +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>
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'