X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0aea0fe49faebf703226d662012aae71904a5a30..9555a2020771863c2e4f6b8802bd6850efb37713:/src/store/processes/processes-actions.ts diff --git a/src/store/processes/processes-actions.ts b/src/store/processes/processes-actions.ts index b65a220273..ba70f9147d 100644 --- a/src/store/processes/processes-actions.ts +++ b/src/store/processes/processes-actions.ts @@ -6,8 +6,6 @@ import { Dispatch } from "redux"; import { RootState } from '~/store/store'; import { ServiceRepository } from '~/services/services'; import { updateResources } from '~/store/resources/resources-actions'; -import { FilterBuilder } from '~/services/api/filter-builder'; -import { ContainerRequestResource } from '~/models/container-request'; import { Process } from './process'; import { dialogActions } from '~/store/dialog/dialog-actions'; import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions'; @@ -19,50 +17,21 @@ 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 { getWorkflowInputs } from "~/models/workflow"; +import { getWorkflow, getWorkflowInputs } from "~/models/workflow"; export const loadProcess = (containerRequestUuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise => { - const response = await services.workflowService.list(); - dispatch(runProcessPanelActions.SET_WORKFLOWS(response.items)); const containerRequest = await services.containerRequestService.get(containerRequestUuid); dispatch(updateResources([containerRequest])); + if (containerRequest.containerUuid) { const container = await services.containerService.get(containerRequest.containerUuid); dispatch(updateResources([container])); - await dispatch(loadSubprocesses(containerRequest.containerUuid)); return { containerRequest, container }; } return { containerRequest }; }; -export const loadSubprocesses = (containerUuid: string) => - async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - const containerRequests = await dispatch(loadContainerRequests( - new FilterBuilder().addEqual('requestingContainerUuid', containerUuid).getFilters() - )) as ContainerRequestResource[]; - - const containerUuids: string[] = containerRequests.reduce((uuids, { containerUuid }) => - containerUuid - ? [...uuids, containerUuid] - : uuids, []); - - if (containerUuids.length > 0) { - await dispatch(loadContainers( - new FilterBuilder().addIn('uuid', containerUuids).getFilters() - )); - } - }; - -const MAX_AMOUNT_OF_SUBPROCESSES = 10000; - -export const loadContainerRequests = (filters: string) => - async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - const { items } = await services.containerRequestService.list({ filters, limit: MAX_AMOUNT_OF_SUBPROCESSES }); - dispatch(updateResources(items)); - return items; - }; - export const loadContainers = (filters: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const { items } = await services.containerService.list({ filters }); @@ -86,8 +55,8 @@ export const reRunProcess = (processUuid: string, workflowUuid: string) => const workflows = getState().runProcessPanel.searchWorkflows; const workflow = workflows.find(workflow => workflow.uuid === workflowUuid); if (workflow && process) { - let inputs = getWorkflowInputs(process.mounts[MOUNT_PATH_CWL_WORKFLOW]); - inputs = getInputs(process); + const mainWf = getWorkflow(process.mounts[MOUNT_PATH_CWL_WORKFLOW]); + if (mainWf) { mainWf.inputs = getInputs(process); } const stringifiedDefinition = JSON.stringify(process.mounts[MOUNT_PATH_CWL_WORKFLOW].content); const newWorkflow = { ...workflow, definition: stringifiedDefinition }; @@ -100,7 +69,7 @@ export const reRunProcess = (processUuid: string, workflowUuid: string) => ram: process.runtimeConstraints.ram, vcpus: process.runtimeConstraints.vcpus, keep_cache_ram: process.runtimeConstraints.keep_cache_ram, - api: process.runtimeConstraints.API + acr_container_image: process.containerImage }; dispatch(initialize(RUN_PROCESS_ADVANCED_FORM, advancedInitialData)); @@ -125,7 +94,7 @@ const getInputs = (data: any) => { default: data.mounts[MOUNT_PATH_CWL_INPUT].content[it.id], doc: it.doc } - ) + ) ) : []; }; @@ -151,5 +120,3 @@ export const removeProcessPermanently = (uuid: string) => dispatch(projectPanelActions.REQUEST_ITEMS()); dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removed.', hideDuration: 2000, kind: SnackbarKind.SUCCESS })); }; - -