X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ea54fb82c3a59ca8a959643f8bec4776635433e0..909844cdb1eda3d4cd31f3fa1818ee7eca62d319:/src/store/processes/process.ts diff --git a/src/store/processes/process.ts b/src/store/processes/process.ts index ab8093b8..60505be0 100644 --- a/src/store/processes/process.ts +++ b/src/store/processes/process.ts @@ -4,11 +4,11 @@ import { ContainerRequestResource, ContainerRequestState } from '../../models/container-request'; import { ContainerResource, ContainerState } from '../../models/container'; -import { ResourcesState, getResource } from '~/store/resources/resources'; +import { ResourcesState, getResource } from 'store/resources/resources'; import { filterResources } from '../resources/resources'; -import { ResourceKind, Resource, extractUuidKind } from '~/models/resource'; -import { getTimeDiff } from '~/common/formatters'; -import { ArvadosTheme } from '~/common/custom-theme'; +import { ResourceKind, Resource, extractUuidKind } from 'models/resource'; +import { getTimeDiff } from 'common/formatters'; +import { ArvadosTheme } from 'common/custom-theme'; export interface Process { containerRequest: ContainerRequestResource; @@ -56,10 +56,20 @@ export const getSubprocesses = (uuid: string) => (resources: ResourcesState) => return []; }; -export const getProcessRuntime = ({ container }: Process) => - container - ? getTimeDiff(container.finishedAt || '', container.startedAt || '') - : 0; +export const getProcessRuntime = ({ container }: Process) => { + if (container) { + if (container.startedAt === null) { + return 0; + } + if (container.finishedAt === null) { + // Count it from now + return new Date().getTime() - new Date(container.startedAt).getTime(); + } + return getTimeDiff(container.finishedAt, container.startedAt); + } else { + return 0; + } +}; export const getProcessStatusColor = (status: string, { customs, palette }: ArvadosTheme) => { switch (status) { @@ -80,6 +90,9 @@ export const getProcessStatus = ({ containerRequest, container }: Process): Proc case containerRequest.state === ContainerRequestState.UNCOMMITTED: return ProcessStatus.DRAFT; + case container && container.state === ContainerState.COMPLETE && container.exitCode === 0: + return ProcessStatus.COMPLETED; + case containerRequest.priority === 0: case container && container.state === ContainerState.CANCELLED: return ProcessStatus.CANCELLED; @@ -93,9 +106,6 @@ export const getProcessStatus = ({ containerRequest, container }: Process): Proc case container && container.state === ContainerState.RUNNING: return ProcessStatus.RUNNING; - case container && container.state === ContainerState.COMPLETE && container.exitCode === 0: - return ProcessStatus.COMPLETED; - case container && container.state === ContainerState.COMPLETE && container.exitCode !== 0: return ProcessStatus.FAILED;