From b1d13ce9185b1bb15d9a93a2d6facee01e786985 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Mon, 3 May 2021 16:02:00 +0200
Subject: [PATCH] return collective string for all detectors in run action

---
 webservice/webservice.py | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/webservice/webservice.py b/webservice/webservice.py
index ec97eeb24..b3a7917e6 100644
--- a/webservice/webservice.py
+++ b/webservice/webservice.py
@@ -1163,6 +1163,9 @@ class ActionsServer:
             self, run_nrs, rid, detectors, action, instrument, cycle, proposal,
             request_time
     ) -> (str, Optional[str]):
+        report = ""
+        ret = ""
+        delim = ", "
         # run xfel_calibrate
         for karabo_id, dconfig in detectors.items():
             detector = dconfig['detector-type']
@@ -1179,16 +1182,18 @@ class ActionsServer:
             ).split()
 
             cmd = parse_config(cmd, dconfig)
-
-            ret = await run_action(self.job_db, cmd, self.mode,
-                                   proposal, run_nrs[-1], rid)
-
+            # TODO: Add detector info in returned run action status.
+            ret += (
+                await run_action(
+                    self.job_db, cmd, self.mode,
+                    proposal, run_nrs[-1], rid
+                ) + delim
+            )
             if '--report-to' in cmd[:-1]:
                 report_idx = cmd.index('--report-to') + 1
-                report = cmd[report_idx] + '.pdf'
-            else:
-                report = None
-            return ret, report
+                report += cmd[report_idx] + '.pdf' + delim
+        # return string without a tailing comma.
+        return ret[:-2], report[:-2] if report != delim else None
 
 parser = argparse.ArgumentParser(
     description='Start the calibration webservice')
-- 
GitLab