X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7653054635e3f4f84da3f2b6862cd2c02fbe3fd4..fabe5dff5a3be858f1bc8b88f9a417fd0ad5720d:/sdk/cwl/arvados_cwl/fsaccess.py?ds=inline 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):