self.arvrunner.output_callback({}, "permanentFail")
else:
self.arvrunner.output_callback(outputs, processStatus)
+
+
+def print_keep_deps_visitor(references, doc_loader, tool):
+ def collect_locators(obj):
+ loc = obj.get("location", "") or obj.get("http://arvados.org/cwl#dockerCollectionPDH", "")
+
+ g = arvados.util.keepuri_pattern.match(loc)
+ if g and g[1] not in references:
+ references.append(g[1])
+
+ sc_result = scandeps(tool["id"], tool,
+ set(),
+ set(("location", "id")),
+ None, urljoin=doc_loader.fetcher.urljoin,
+ nestdirs=False)
+
+ visit_class(sc_result, ("File", "Directory"), collect_locators)
+
+
+def print_keep_deps(tool):
+ references = []
+
+ tool.visit(partial(print_keep_deps_visitor, references, tool.doc_loader))
+ print(json.dumps(references))