From: Peter Amstutz Date: Fri, 15 Apr 2022 17:44:57 +0000 (-0400) Subject: 18994: Fix for colon characters in filenames X-Git-Tag: 2.5.0~199^2~2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/faf47b57391a6e704b82623e997d9213ffc9442c 18994: Fix for colon characters in filenames Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/sdk/cwl/arvados_cwl/executor.py b/sdk/cwl/arvados_cwl/executor.py index 6e23d80a85..5f24d2407d 100644 --- a/sdk/cwl/arvados_cwl/executor.py +++ b/sdk/cwl/arvados_cwl/executor.py @@ -18,6 +18,7 @@ import json import re from functools import partial import time +import urllib from cwltool.errors import WorkflowException import cwltool.workflow @@ -450,7 +451,7 @@ The 'jobs' API is no longer supported. srccollection = sp[0][5:] try: reader = self.collection_cache.get(srccollection) - srcpath = "/".join(sp[1:]) if len(sp) > 1 else "." + srcpath = urllib.parse.unquote("/".join(sp[1:]) if len(sp) > 1 else ".") final.copy(srcpath, v.target, source_collection=reader, overwrite=False) except arvados.errors.ArgumentError as e: logger.error("Creating CollectionReader for '%s' '%s': %s", k, v, e) diff --git a/sdk/cwl/arvados_cwl/pathmapper.py b/sdk/cwl/arvados_cwl/pathmapper.py index e0216aae52..d7b535eebd 100644 --- a/sdk/cwl/arvados_cwl/pathmapper.py +++ b/sdk/cwl/arvados_cwl/pathmapper.py @@ -166,7 +166,7 @@ class ArvPathMapper(PathMapper): else: suffix = loc[len(prefix):] - if prefix+suffix != prefix+urllib.parse.quote(srcobj["basename"], "/+@"): + if "basename" in srcobj and prefix+suffix != prefix+urllib.parse.quote(srcobj["basename"], "/+@"): return True if srcobj["class"] == "File" and loc not in self._pathmap: