Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>
property1: value1
property2: $(inputs.value2)
property1: value1
property2: $(inputs.value2)
+ arv:OutputCollectionProperties:
+ outputProperties:
+ property1: value1
+ property2: $(inputs.value2)
+
cwltool:CUDARequirement:
cudaVersionMin: "11.0"
cudaComputeCapability: "9.0"
cwltool:CUDARequirement:
cudaVersionMin: "11.0"
cudaComputeCapability: "9.0"
|_. Field |_. Type |_. Description |
|processProperties|key-value map, or list of objects with the fields {propertyName, propertyValue}|The properties that will be set on the container request. May include expressions that reference `$(inputs)` of the current workflow or tool.|
|_. Field |_. Type |_. Description |
|processProperties|key-value map, or list of objects with the fields {propertyName, propertyValue}|The properties that will be set on the container request. May include expressions that reference `$(inputs)` of the current workflow or tool.|
+h2(#ProcessProperties). arv:OutputCollectionProperties
+
+Specify custom "properties":{{site.baseurl}}/api/methods.html#subpropertyfilters that will be set on the output collection of the workflow step.
+
+table(table table-bordered table-condensed).
+|_. Field |_. Type |_. Description |
+|outputProperties|key-value map, or list of objects with the fields {propertyName, propertyValue}|The properties that will be set on the output collection. May include expressions that reference `$(inputs)` of the current workflow or tool.|
+
h2(#CUDARequirement). cwltool:CUDARequirement
Request support for Nvidia CUDA GPU acceleration in the container. Assumes that the CUDA runtime (SDK) is installed in the container, and the host will inject the CUDA driver libraries into the container (equal or later to the version requested).
h2(#CUDARequirement). cwltool:CUDARequirement
Request support for Nvidia CUDA GPU acceleration in the container. Assumes that the CUDA runtime (SDK) is installed in the container, and the host will inject the CUDA driver libraries into the container (equal or later to the version requested).
jsonldPredicate:
_id: "@type"
_type: "@vocab"
jsonldPredicate:
_id: "@type"
_type: "@vocab"
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
jsonldPredicate:
_id: "@type"
_type: "@vocab"
jsonldPredicate:
_id: "@type"
_type: "@vocab"
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
jsonldPredicate:
_id: "@type"
_type: "@vocab"
jsonldPredicate:
_id: "@type"
_type: "@vocab"
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
type: PropertyDef[]
jsonldPredicate:
mapSubject: propertyName
for pr in properties_req["processProperties"]:
container_request["properties"][pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
for pr in properties_req["processProperties"]:
container_request["properties"][pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
+ container_request["output_properties"] = {}
output_properties_req, _ = self.get_requirement("http://arvados.org/cwl#OutputCollectionProperties")
if output_properties_req:
output_properties_req, _ = self.get_requirement("http://arvados.org/cwl#OutputCollectionProperties")
if output_properties_req:
- for pr in output_properties_req["processProperties"]:
+ for pr in output_properties_req["outputProperties"]:
container_request["output_properties"][pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
container_request["output_properties"][pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
- output_properties.update(intermediate_collection_info["properties"])
+ container_request["output_properties"].update(intermediate_collection_info["properties"])
if runtimeContext.runnerjob.startswith("arvwf:"):
wfuuid = runtimeContext.runnerjob[6:runtimeContext.runnerjob.index("#")]
if runtimeContext.runnerjob.startswith("arvwf:"):
wfuuid = runtimeContext.runnerjob[6:runtimeContext.runnerjob.index("#")]
output_properties = {}
output_properties_req, _ = self.get_requirement("http://arvados.org/cwl#OutputCollectionProperties")
if output_properties_req:
output_properties = {}
output_properties_req, _ = self.get_requirement("http://arvados.org/cwl#OutputCollectionProperties")
if output_properties_req:
- for pr in output_properties_req["processProperties"]:
+ for pr in output_properties_req["outputProperties"]:
output_properties[pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
self.final_output, self.final_output_collection = self.make_output_collection(self.output_name, storage_classes,
output_properties[pr["propertyName"]] = self.builder.do_eval(pr["propertyValue"])
self.final_output, self.final_output_collection = self.make_output_collection(self.output_name, storage_classes,
if intermediate_output_ttl > 0:
trash_time = datetime.datetime.utcnow() + datetime.timedelta(seconds=intermediate_output_ttl)
container_uuid = None
if intermediate_output_ttl > 0:
trash_time = datetime.datetime.utcnow() + datetime.timedelta(seconds=intermediate_output_ttl)
container_uuid = None
+ props = {"type": "intermediate"}
- container_uuid = current_container['uuid']
- props = {"type": "intermediate", "container": container_uuid}
+ props["container"] = current_container['uuid']
return {"name" : name, "trash_at" : trash_time, "properties" : props}
return {"name" : name, "trash_at" : trash_time, "properties" : props}
merged_properties.update(self.output_properties)
end
merged_properties.update(self.output_properties)
end
- merged_properties['type'] = out_type
+ if out_type == 'output' and !requesting_container_uuid.nil?
+ merged_properties['type'] = 'intermediate'
+ else
+ merged_properties['type'] = out_type
+ end
merged_properties['container_request'] = uuid
coll.assign_attributes(
merged_properties['container_request'] = uuid
coll.assign_attributes(