@@ -110,7 +110,6 @@ def relink_initialworkdir(
110
110
def neverquote (string : str , pos : int = 0 , endpos : int = 0 ) -> Optional [Match [str ]]:
111
111
return None
112
112
113
-
114
113
CollectOutputsType = Union [Callable [[str , int ], CWLObjectType ], functools .partial ]
115
114
116
115
@@ -227,6 +226,14 @@ def is_streamable(file: str) -> bool:
227
226
indent = 4 ,
228
227
),
229
228
)
229
+ if runtimeContext .log_host == "" :
230
+ self .base_path_stdout_stderr = self .outdir
231
+ else :
232
+ self .base_path_stdout_stderr = runtimeContext .log_host
233
+ # Generate random ids
234
+ import uuid
235
+ self .stdout = self .stdout if not self .stdout else self .stdout + uuid .uuid4 ().hex
236
+ self .stderr = self .stderr if not self .stderr else self .stderr + uuid .uuid4 ().hex
230
237
231
238
def _execute (
232
239
self ,
@@ -267,9 +274,6 @@ def _execute(
267
274
menv .pass_through_env_vars (env )
268
275
menv .set_env_vars (env )
269
276
270
- outdir_stdout_stderr = self .outdir if runtimeContext .log_host == "" else runtimeContext .log_host
271
-
272
-
273
277
_logger .info (
274
278
"[job %s] %s$ %s%s%s%s" ,
275
279
self .name ,
@@ -281,8 +285,8 @@ def _execute(
281
285
]
282
286
),
283
287
" < %s" % self .stdin if self .stdin else "" ,
284
- " > %s" % os .path .join (outdir_stdout_stderr , self .stdout ) if self .stdout else "" ,
285
- " 2> %s" % os .path .join (outdir_stdout_stderr , self .stderr ) if self .stderr else "" ,
288
+ " > %s" % os .path .join (self . base_path_stdout_stderr , self .stdout ) if self .stdout else "" ,
289
+ " 2> %s" % os .path .join (self . base_path_stdout_stderr , self .stderr ) if self .stderr else "" ,
286
290
)
287
291
if self .joborder is not None and runtimeContext .research_obj is not None :
288
292
job_order = self .joborder
@@ -311,22 +315,21 @@ def _execute(
311
315
stdin_path = rmap [1 ]
312
316
313
317
stderr_path = None
314
- outdir_stdout_stderr = self .outdir if runtimeContext .log_host == "" else runtimeContext .log_host
315
318
if self .stderr is not None :
316
- abserr = os .path .join (outdir_stdout_stderr , self .stderr )
319
+ abserr = os .path .join (self . base_path_stdout_stderr , self .stderr )
317
320
dnerr = os .path .dirname (abserr )
318
321
if dnerr and not os .path .exists (dnerr ):
319
322
os .makedirs (dnerr )
320
323
stderr_path = abserr
321
324
322
325
stdout_path = None
323
326
if self .stdout is not None :
324
- absout = os .path .join (outdir_stdout_stderr , self .stdout )
327
+ absout = os .path .join (self . base_path_stdout_stderr , self .stdout )
325
328
dnout = os .path .dirname (absout )
326
329
if dnout and not os .path .exists (dnout ):
327
330
os .makedirs (dnout )
328
331
stdout_path = absout
329
- _logger .debug ("stderr: %s stdout: %s hostdir: %s" , stderr_path , stdout_path , outdir_stdout_stderr )
332
+ _logger .debug ("stderr: %s stdout: %s hostdir: %s" , stderr_path , stdout_path , self . base_path_stdout_stderr )
330
333
commands = [str (x ) for x in runtime + self .command_line ]
331
334
if runtimeContext .secret_store is not None :
332
335
commands = cast (
0 commit comments