From eee462fdc626e0fe36569581886a461b342028d2 Mon Sep 17 00:00:00 2001
From: Ivan Kondov <ivan.kondov@kit.edu>
Date: Sat, 1 Feb 2025 12:02:54 +0100
Subject: [PATCH 1/3] add local_redirect to save stdout and stderr in files in
 launchdir

---
 src/virtmat/language/utilities/fireworks.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/virtmat/language/utilities/fireworks.py b/src/virtmat/language/utilities/fireworks.py
index 08da4126..56ab8af6 100644
--- a/src/virtmat/language/utilities/fireworks.py
+++ b/src/virtmat/language/utilities/fireworks.py
@@ -21,15 +21,18 @@ def launchdir(tmp_dir):
 
 def run_fireworks(lpad, fw_ids, worker_name=None, create_subdirs=False):
     """launch fireworks with the provided fw_ids"""
-    worker = FWorker(name=worker_name, query={'fw_id': {'$in': fw_ids}})
+    fw_query = {'fw_id': {'$in': fw_ids}}
+    launch_kwargs = {'strm_lvl': lpad.strm_lvl}
+    launch_kwargs['fworker'] = FWorker(name=worker_name, query=fw_query)
     cfg = get_default_resconfig()
+    assert cfg.default_worker.name == worker_name
     default_launchdir = cfg and cfg.default_worker.default_launchdir
     with launchdir(default_launchdir or os.getcwd()):
         if create_subdirs:
-            rapidfire(lpad, fworker=worker, nlaunches=0, strm_lvl=lpad.strm_lvl)
+            rapidfire(lpad, nlaunches=0, local_redirect=True, **launch_kwargs)
         else:
             for _ in fw_ids:
-                launch_rocket(lpad, fworker=worker, strm_lvl=lpad.strm_lvl)
+                launch_rocket(lpad, **launch_kwargs)
 
 
 def get_nodes_providing(lpad, uuid, name):
-- 
GitLab


From b7d8f4077da61c56971c95e743e0243c9099fdc4 Mon Sep 17 00:00:00 2001
From: Ivan Kondov <ivan.kondov@kit.edu>
Date: Sat, 1 Feb 2025 12:10:13 +0000
Subject: [PATCH 2/3] fix wcfg and default_launchdir selection

---
 src/virtmat/language/utilities/fireworks.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/virtmat/language/utilities/fireworks.py b/src/virtmat/language/utilities/fireworks.py
index 56ab8af6..b9612003 100644
--- a/src/virtmat/language/utilities/fireworks.py
+++ b/src/virtmat/language/utilities/fireworks.py
@@ -25,9 +25,15 @@ def run_fireworks(lpad, fw_ids, worker_name=None, create_subdirs=False):
     launch_kwargs = {'strm_lvl': lpad.strm_lvl}
     launch_kwargs['fworker'] = FWorker(name=worker_name, query=fw_query)
     cfg = get_default_resconfig()
-    assert cfg.default_worker.name == worker_name
-    default_launchdir = cfg and cfg.default_worker.default_launchdir
-    with launchdir(default_launchdir or os.getcwd()):
+    if cfg:
+        if worker_name:
+            wcfg = next(w for w in cfg.workers if w.name == worker_name)
+        else:
+            wcfg = cfg.default_worker
+        default_launchdir = wcfg.default_launchdir
+    else:
+        default_launchdir = os.getcwd()
+    with launchdir(default_launchdir):
         if create_subdirs:
             rapidfire(lpad, nlaunches=0, local_redirect=True, **launch_kwargs)
         else:
-- 
GitLab


From acc4d5b1ff867c771c98c7c7e3ece88d01d1dae8 Mon Sep 17 00:00:00 2001
From: Ivan Kondov <ivan.kondov@kit.edu>
Date: Sat, 1 Feb 2025 13:23:25 +0100
Subject: [PATCH 3/3] fix case of default_launchdir is None

---
 src/virtmat/language/utilities/fireworks.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/virtmat/language/utilities/fireworks.py b/src/virtmat/language/utilities/fireworks.py
index b9612003..fc3f1f37 100644
--- a/src/virtmat/language/utilities/fireworks.py
+++ b/src/virtmat/language/utilities/fireworks.py
@@ -30,7 +30,7 @@ def run_fireworks(lpad, fw_ids, worker_name=None, create_subdirs=False):
             wcfg = next(w for w in cfg.workers if w.name == worker_name)
         else:
             wcfg = cfg.default_worker
-        default_launchdir = wcfg.default_launchdir
+        default_launchdir = wcfg.default_launchdir or os.getcwd()
     else:
         default_launchdir = os.getcwd()
     with launchdir(default_launchdir):
-- 
GitLab