Skip to content

Commit cfe5ea9

Browse files
committed
update resolved path after Create{Writable,}File
1 parent defe031 commit cfe5ea9

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

cwltool/job.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ def _execute(self,
265265
else:
266266
stdin_path = rmap[1]
267267

268-
269268
stderr_path = None
270269
if self.stderr is not None:
271270
abserr = os.path.join(self.outdir, self.stderr)
@@ -481,7 +480,7 @@ def create_file_and_add_volume(self,
481480
volume, # type: MapperEnt
482481
host_outdir_tgt, # type: Optional[Text]
483482
secret_store # type: Optional[SecretStore]
484-
): # type: (...) -> None
483+
): # type: (...) -> Optional[Text]
485484
"""Create the file and add a mapping."""
486485
if not host_outdir_tgt:
487486
new_file = os.path.join(
@@ -504,6 +503,7 @@ def create_file_and_add_volume(self,
504503
ensure_writable(host_outdir_tgt or new_file)
505504
else:
506505
ensure_non_writable(host_outdir_tgt or new_file)
506+
return host_outdir_tgt or new_file
507507

508508

509509

@@ -535,8 +535,12 @@ def add_volumes(self,
535535
self.add_writable_directory_volume(
536536
runtime, vol, host_outdir_tgt)
537537
elif vol.type in ["CreateFile", "CreateWritableFile"]:
538-
self.create_file_and_add_volume(
538+
new_path = self.create_file_and_add_volume(
539539
runtime, vol, host_outdir_tgt, secret_store)
540+
key = pathmapper.reversemap(vol.target)
541+
if key:
542+
pathmapper.update(
543+
key[0], new_path, vol.target, vol.type, vol.staged)
540544

541545
def run(self, runtimeContext):
542546
# type: (RuntimeContext) -> None

cwltool/process.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,9 @@ def stageFiles(pm, stageFunc=None, ignoreWritable=False, symLink=True, secret_st
265265
else:
266266
n.write(p.resolved.encode("utf-8"))
267267
os.chmod(p.target, stat.S_IRUSR)
268+
key = pm.reversemap(p.target)
269+
if key:
270+
pm.update(key[0], p.target, p.target, p.type, p.staged)
268271
elif p.type == "CreateWritableFile":
269272
with open(p.target, "wb") as n:
270273
if secret_store is not None:

0 commit comments

Comments
 (0)