X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1072269cec78f75ec8995afab82d0faaa485f5da..1968561ceeea238bfb229d4d4166316ea7671a9b:/src/store/processes/processes-actions.ts diff --git a/src/store/processes/processes-actions.ts b/src/store/processes/processes-actions.ts index 1deb4cb87c..e4f35c1e44 100644 --- a/src/store/processes/processes-actions.ts +++ b/src/store/processes/processes-actions.ts @@ -17,7 +17,7 @@ import { initialize } from "redux-form"; import { RUN_PROCESS_BASIC_FORM, RunProcessBasicFormData } from "views/run-process-panel/run-process-basic-form"; import { RunProcessAdvancedFormData, RUN_PROCESS_ADVANCED_FORM } from "views/run-process-panel/run-process-advanced-form"; import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from 'models/process'; -import { CommandInputParameter, getWorkflow, getWorkflowInputs, getWorkflowOutputs } from "models/workflow"; +import { CommandInputParameter, getWorkflow, getWorkflowInputs, getWorkflowOutputs, WorkflowInputsData } from "models/workflow"; import { ProjectResource } from "models/project"; import { UserResource } from "models/user"; import { CommandOutputParameter } from "cwlts/mappings/v1.0/CommandOutputParameter"; @@ -35,6 +35,10 @@ export const loadProcess = (containerRequestUuid: string) => if (containerRequest.containerUuid) { const container = await services.containerService.get(containerRequest.containerUuid); dispatch(updateResources([container])); + if (container.runtimeUserUuid) { + const runtimeUser = await services.userService.get(container.runtimeUserUuid); + dispatch(updateResources([runtimeUser])); + } return { containerRequest, container }; } return { containerRequest }; @@ -56,6 +60,7 @@ const containerFieldsNoMounts = [ "auth_uuid", "command", "container_image", + "cost", "created_at", "cwd", "environment", @@ -136,19 +141,22 @@ export const reRunProcess = (processUuid: string, workflowUuid: string) => /* * Fetches raw inputs from containerRequest mounts with fallback to properties * Returns undefined if containerRequest not loaded - * Returns [] if inputs not found in mounts or props + * Returns {} if inputs not found in mounts or props */ -export const getRawInputs = (data: any): CommandInputParameter[] | undefined => { +export const getRawInputs = (data: any): WorkflowInputsData | undefined => { if (!data) { return undefined; } const mountInput = data.mounts?.[MOUNT_PATH_CWL_INPUT]?.content; const propsInput = data.properties?.cwl_input; - if (!mountInput && !propsInput) { return []; } + if (!mountInput && !propsInput) { return {}; } return (mountInput || propsInput); } export const getInputs = (data: any): CommandInputParameter[] => { + // Definitions from mounts are needed so we return early if missing if (!data || !data.mounts || !data.mounts[MOUNT_PATH_CWL_WORKFLOW]) { return []; } const content = getRawInputs(data) as any; + // Only escape if content is falsy to allow displaying definitions if no inputs are present + // (Don't check raw content length) if (!content) { return []; } const inputs = getWorkflowInputs(data.mounts[MOUNT_PATH_CWL_WORKFLOW].content);