X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c5fa0c4eed19a9d0c163ea1727189970533f0203..901a27dcbc5e09497f237d47555d8f713bb21cb9:/src/models/workflow.ts diff --git a/src/models/workflow.ts b/src/models/workflow.ts index 8d0b37de21..ad84bd9e89 100644 --- a/src/models/workflow.ts +++ b/src/models/workflow.ts @@ -22,6 +22,7 @@ export interface Workflow { inputs: CommandInputParameter[]; outputs: any[]; steps: any[]; + hints?: ProcessRequirement[]; } export interface CommandLineTool { @@ -29,6 +30,21 @@ export interface CommandLineTool { id: string; inputs: CommandInputParameter[]; outputs: any[]; + hints?: ProcessRequirement[]; +} + +export type ProcessRequirement = GenericProcessRequirement | WorkflowRunnerResources; + +export interface GenericProcessRequirement { + class: string; +} + +export interface WorkflowRunnerResources { + class: 'http://arvados.org/cwl#WorkflowRunnerResources'; + ramMin?: number; + coresMin?: number; + keep_cache?: number; + acrContainerImage?: string; } export type CommandInputParameter = @@ -121,11 +137,18 @@ export const parseWorkflowDefinition = (workflow: WorkflowResource): WorkflowRes return definition; }; -export const getWorkflowInputs = (workflowDefinition: WorkflowResourceDefinition) => { +export const getWorkflow = (workflowDefinition: WorkflowResourceDefinition) => { if (!workflowDefinition.$graph) { return undefined; } const mainWorkflow = workflowDefinition.$graph.find(item => item.class === 'Workflow' && item.id === '#main'); return mainWorkflow - ? mainWorkflow.inputs + ? mainWorkflow + : undefined; +}; + +export const getWorkflowInputs = (workflowDefinition: WorkflowResourceDefinition) => { + if (!workflowDefinition) { return undefined; } + return getWorkflow(workflowDefinition) + ? getWorkflow(workflowDefinition)!.inputs : undefined; };