Create store for processes
[arvados.git] / src / store / processes / process.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { ContainerRequestResource } from '../../models/container-request';
6 import { ContainerResource } from '../../models/container';
7 import { ResourcesState, getResource } from '~/store/resources/resources';
8
9 export interface Process {
10     containerRequest: ContainerRequestResource;
11     container?: ContainerResource;
12 }
13
14 export const getProcess = (uuid: string) => (resources: ResourcesState): Process | undefined => {
15     const containerRequest = getResource<ContainerRequestResource>(uuid)(resources);
16     if (containerRequest) {
17         if (containerRequest.containerUuid) {
18             const container = getResource<ContainerResource>(containerRequest.containerUuid)(resources);
19             if (container) {
20                 return { containerRequest, container };
21             }
22         }
23         return { containerRequest };
24     }
25     return;
26 };