ProcessRequirement Class
DockerRequirement Class
ProcessRequirementList
ProcessRequirement
-
modifies the semantics or runtime environment of a process. If an
implementation cannot satisfy all requirements, or a requirement is
listed which is not recognized by the implementation, it is a fatal
error and the implementation must not attempt to run the process,
unless overridden at user option.
class(character) The specific requirement type.
DockerRequirement Class
-
Indicates that a workflow component should be run in a Docker
container, and specifies how to fetch or build the image.
If a CommandLineTool lists DockerRequirement under hints or
requirements, it may (or must) be run in the specified Docker
container. The platform must first acquire or install the correct
Docker image, as described by DockerRequirement. The platform must
execute the tool in the container using docker run with the
appropriate Docker image and the tool command line. The workflow
platform may provide input files and the designated output
directory through the use of volume bind mounts. The platform may
rewrite file paths in the input object to correspond to the Docker
bind mounted locations. When running a tool contained in Docker,
the workflow platform must not assume anything about the contents
of the Docker container,such as the presence or absence of specific
software, except to assume that the generated command line
represents a valid command within the runtime environment of the
container.
dockerPull(character) Get a Docker image using docker pull
dockerLoad(character) Specify a HTTP URL from which to download a Docker image using docker load.
dockerFile(character) Supply the contents of a Dockerfile which will be build using docker build.
dockerImageId(character) The image id that will be used for docker run. May be a human-readable image name or the image identifier hash. May be skipped if dockerPull is specified, in which case the dockerPull image id will be used.
dockerOutputDirectory(character) Set the designated output directory to a specific location inside the Docker container.
SubworkflowFeatureRequirement Class
Indicates that the workflow platform must support nested workflows in the run field of (WorkflowStep)(#workflowstep).
FileDef Class
-
Define a file that must be placed by in the designated output
directory prior to executing the command line tool. May be the
result of executing an expression, such as building a configuration
file from a template.
filename(characterORExpression) The name of the file to create in the output directory.
fileContent(characterORExpression) If the value is a string literal or an expression which evalutes to a string, a new file must be created with the string as the file contents. If the value is an expression that evaluates to a File object, this indicates the referenced file should be added to the designated output directory prior to executing the tool. Files added in this way may be read-only, and may be implemented through bind mounts or file system links in such a way as to avoid unecessary copying of the input file.
CreateFileRequirement Class
-
Define a list of files that must be created and placed by the
workflow platform in the designated output directory prior to
executing the command line tool. See FileDef for details.
fileDef(FileDefList) The list of files.
EnvironmentDef Class
-
Define an environment variable that will be set in the runtime
environment by the workflow platform when executing the command
line tool. May be the result of executing an expression, such as
getting a parameter from input.
envName(character) The environment variable name.
envValue(characterORExpression) The environment variable value.
EnvVarRequirement Class
-
Define a list of environment variables which will be set in the
execution environment of the tool. See EnvironmentDef for details.
envDef(EnvironmentDefList) The list of environment variables.
ScatterFeatureRequirement Class
Indicates that the workflow platform must support the scatter and scatterMethod fields of (WorkflowStep)(#workflowstep).
ExpressionEngineRequirement Class
-
Define an expression engine, as described in Expressions.
id(character) Used to identify the expression engine in the engine field of Expressions.
requirements[ProcessRequirement]Requirements to run this expression engine, such as DockerRequirement for specifying a container with the engine.
engineCommand[character] The command line to invoke the expression engine.
engineConfig[character] Additional configuration or code fragments that will also be passed to the expression engine. The semantics of this field are defined by the underlying expression engine. Intended for uses such as providing function definitions that will be called from CWL expressions.
Examples
dkr <- DockerRequirement(dockerImageId = "testid")
cfr <- CreateFileRequirement(fileDef = FileDefList(FileDef(filename = "hello.txt")))
sfr <- SubworkflowFeatureRequirement()
evr <- EnvVarRequirement(envDef = EnvironmentDefList(
EnvironmentDef(envName = "path", envValue = "testpath")
))
safr <- ScatterFeatureRequirement()
eer <- ExpressionEngineRequirement(id = "hello")
ProcessRequirementList(dkr, cfr, sfr, evr, safr, eer)
#> [[1]]
#> class: DockerRequirement
#> dockerImageId: testid
#>
#> [[2]]
#> class: CreateFileRequirement
#> fileDef:
#> - filename: hello.txt
#> fileContent: ~
#>
#> [[3]]
#> class: SubworkflowFeatureRequirement
#>
#> [[4]]
#> class: EnvVarRequirement
#> envDef:
#> - envName: path
#> envValue: testpath
#>
#> [[5]]
#> class: ScatterFeatureRequirement
#>
#> [[6]]
#> class: ExpressionEngineRequirement
#> id: hello
#> requirements: []
#>