X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/94972ae20fa5d9dde7dc814695a970e9d5bad4a7..aaf66379f989120c23eed4fb4a5e6c875362c6dc:/sdk/cwl/arvados_cwl/fsaccess.py diff --git a/sdk/cwl/arvados_cwl/fsaccess.py b/sdk/cwl/arvados_cwl/fsaccess.py index c1ea586b04..16ec2b2f96 100644 --- a/sdk/cwl/arvados_cwl/fsaccess.py +++ b/sdk/cwl/arvados_cwl/fsaccess.py @@ -148,6 +148,11 @@ class CollectionFsAccess(cwltool.stdfsaccess.StdFsAccess): return False else: raise + except IOError as err: + if err.errno == errno.ENOENT: + return False + else: + raise if collection is not None: if rest: return collection.exists(rest) @@ -223,14 +228,15 @@ class CollectionFetcher(DefaultFetcher): self.fsaccess = fs_access self.num_retries = num_retries - def fetch_text(self, url): + def fetch_text(self, url, content_types=None): if url.startswith("keep:"): with self.fsaccess.open(url, "r", encoding="utf-8") as f: return f.read() if url.startswith("arvwf:"): record = self.api_client.workflows().get(uuid=url[6:]).execute(num_retries=self.num_retries) - definition = record["definition"] + ('\nlabel: "%s"\n' % record["name"].replace('"', '\\"')) - return definition + definition = yaml.round_trip_load(record["definition"]) + definition["label"] = record["name"] + return yaml.round_trip_dump(definition) return super(CollectionFetcher, self).fetch_text(url) def check_exists(self, url):