summarylogtreecommitdiffstats
path: root/ceph-20.2.3-fix-mgr-dashboard-progress.patch
blob: 9b6f86bbeadc16d896658822b4c1529856853d70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 3a08713a5e56d38db52113e2f9497ef4a2f01b91 Mon Sep 17 00:00:00 2001
From: Aarti <Aarti.s.Dhikale@ibm.com>
Date: Thu, 19 Mar 2026 23:33:32 +0530
Subject: [PATCH] dashboard: use metadata = event.get('refs', {}) instead of
 dict(event.get('refs', {}))

Fixes: https://tracker.ceph.com/issues/75619

Signed-off-by: Aarti Dhikale <aarti.s.dhikale@ibm.com>
(cherry picked from commit e99e6e7ff9c681af3bfcfffd1c99d53bb04dff3f)
---
 src/pybind/mgr/dashboard/services/progress.py | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/pybind/mgr/dashboard/services/progress.py b/src/pybind/mgr/dashboard/services/progress.py
index ff5caa5f1d9c..5af4543db07d 100644
--- a/src/pybind/mgr/dashboard/services/progress.py
+++ b/src/pybind/mgr/dashboard/services/progress.py
@@ -45,11 +45,27 @@ def _progress_event_to_dashboard_task_common(event, task):
             })
             return
 
+    refs = event.get('refs', {})
+
+    if isinstance(refs, dict):
+        metadata = refs
+    elif isinstance(refs, (list, tuple)):
+        if all(isinstance(i, (list, tuple)) and len(i) == 2 for i in refs):
+            metadata = dict(refs)
+        else:
+            metadata = {"raw_refs": refs}
+    elif isinstance(refs, str):
+        metadata = {"raw_refs": refs}
+    elif refs is None:
+        metadata = {}
+    else:
+        metadata = {"raw_refs": refs}
+
     task.update({
         # we're prepending the "progress/" prefix to tag tasks that come
         # from the progress module
         'name': "progress/{}".format(event['message']),
-        'metadata': dict(event.get('refs', {})),
+        'metadata': metadata,
         'begin_time': datetime.fromtimestamp(
             event["started_at"], tz=timezone.utc).isoformat(),
     })