diff --git a/src/components/Executions/ExecutionDetails/ExecutionMetadata.tsx b/src/components/Executions/ExecutionDetails/ExecutionMetadata.tsx index 0a0302c636..19e2249b02 100644 --- a/src/components/Executions/ExecutionDetails/ExecutionMetadata.tsx +++ b/src/components/Executions/ExecutionDetails/ExecutionMetadata.tsx @@ -66,7 +66,13 @@ export const ExecutionMetadata: React.FC<{ const styles = useStyles(); const { domain } = execution.id; - const { duration, error, startedAt, workflowId } = execution.closure; + const { + abortMetadata, + duration, + error, + startedAt, + workflowId + } = execution.closure; const { referenceExecution, systemMetadata } = execution.spec.metadata; const cluster = systemMetadata?.executionCluster ?? dashedValueString; @@ -134,7 +140,12 @@ export const ExecutionMetadata: React.FC<{ ))} - {error ? : null} + {error || abortMetadata ? ( + + ) : null} ); }; diff --git a/src/components/Executions/ExecutionDetails/ExecutionNodeViews.tsx b/src/components/Executions/ExecutionDetails/ExecutionNodeViews.tsx index 2e5be71131..0ec09c12c5 100644 --- a/src/components/Executions/ExecutionDetails/ExecutionNodeViews.tsx +++ b/src/components/Executions/ExecutionDetails/ExecutionNodeViews.tsx @@ -44,6 +44,9 @@ export const ExecutionNodeViews: React.FC = ({ const filterState = useNodeExecutionFiltersState(); const tabState = useTabState(tabs, tabs.nodes.id); const [graphStateReady, setGraphStateReady] = useState(false); + const { + closure: { abortMetadata } + } = execution; /* We want to maintain the filter selection when switching away from the Nodes tab and back, but do not want to filter the nodes when viewing the graph. So, @@ -60,7 +63,10 @@ export const ExecutionNodeViews: React.FC = ({ - + ); diff --git a/src/components/Executions/Tables/ExpandableExecutionError.tsx b/src/components/Executions/Tables/ExpandableExecutionError.tsx index eb04a58679..98197bebae 100644 --- a/src/components/Executions/Tables/ExpandableExecutionError.tsx +++ b/src/components/Executions/Tables/ExpandableExecutionError.tsx @@ -1,3 +1,4 @@ +import { Admin } from 'flyteidl'; import { ExpandableMonospaceText } from 'components/common/ExpandableMonospaceText'; import { ExecutionError } from 'models/Execution/types'; import * as React from 'react'; @@ -7,17 +8,23 @@ import { useExecutionTableStyles } from './styles'; * a button for copying the error string. */ export const ExpandableExecutionError: React.FC<{ - error: ExecutionError; + abortMetadata?: Admin.IAbortMetadata; + error?: ExecutionError; initialExpansionState?: boolean; onExpandCollapse?(expanded: boolean): void; -}> = ({ error, initialExpansionState = false, onExpandCollapse }) => { +}> = ({ + abortMetadata, + error, + initialExpansionState = false, + onExpandCollapse +}) => { const styles = useExecutionTableStyles(); return (
); diff --git a/src/components/Executions/Tables/NodeExecutionChildren.tsx b/src/components/Executions/Tables/NodeExecutionChildren.tsx index 55e69db3fb..eeb9a0164f 100644 --- a/src/components/Executions/Tables/NodeExecutionChildren.tsx +++ b/src/components/Executions/Tables/NodeExecutionChildren.tsx @@ -2,6 +2,7 @@ import { Typography } from '@material-ui/core'; import * as classnames from 'classnames'; import { getCacheKey } from 'components/Cache/utils'; import { useTheme } from 'components/Theme/useTheme'; +import { Admin } from 'flyteidl'; import * as React from 'react'; import { NodeExecutionGroup } from '../types'; import { NodeExecutionRow } from './NodeExecutionRow'; @@ -9,12 +10,14 @@ import { useExecutionTableStyles } from './styles'; import { calculateNodeExecutionRowLeftSpacing } from './utils'; export interface NodeExecutionChildrenProps { + abortMetadata?: Admin.IAbortMetadata; childGroups: NodeExecutionGroup[]; level: number; } /** Renders a nested list of row items for children of a NodeExecution */ export const NodeExecutionChildren: React.FC = ({ + abortMetadata, childGroups, level }) => { @@ -33,6 +36,7 @@ export const NodeExecutionChildren: React.FC = ({ {childGroups.map(({ name, nodeExecutions }, groupIndex) => { const rows = nodeExecutions.map((nodeExecution, index) => ( = ({ + abortMetadata, execution: nodeExecution, index, level = 0, @@ -88,7 +91,7 @@ export const NodeExecutionRow: React.FC = ({ ) : null; const errorContent = error ? ( - + ) : null; const extraContent = expanded ? ( @@ -98,6 +101,7 @@ export const NodeExecutionRow: React.FC = ({ })} > diff --git a/src/components/Executions/Tables/NodeExecutionsTable.tsx b/src/components/Executions/Tables/NodeExecutionsTable.tsx index 14213167ce..83f8ee7dbd 100644 --- a/src/components/Executions/Tables/NodeExecutionsTable.tsx +++ b/src/components/Executions/Tables/NodeExecutionsTable.tsx @@ -1,4 +1,5 @@ import * as classnames from 'classnames'; +import { Admin } from 'flyteidl'; import { getCacheKey } from 'components/Cache/utils'; import { DetailsPanel } from 'components/common/DetailsPanel'; import { useCommonStyles } from 'components/common/styles'; @@ -14,6 +15,7 @@ import { NoExecutionsContent } from './NoExecutionsContent'; import { useColumnStyles, useExecutionTableStyles } from './styles'; export interface NodeExecutionsTableProps { + abortMetadata?: Admin.IAbortMetadata; nodeExecutions: NodeExecution[]; } @@ -25,6 +27,7 @@ const scrollbarPadding = scrollbarSize(); * TaskExecutions */ export const NodeExecutionsTable: React.FC = ({ + abortMetadata, nodeExecutions }) => { const [ @@ -65,6 +68,7 @@ export const NodeExecutionsTable: React.FC = ({ return ( = ({ state, style }) => { - const { error } = execution.closure; + const { abortMetadata, error } = execution.closure; const tableStyles = useExecutionTableStyles(); const styles = useStyles(); @@ -61,11 +61,12 @@ export const WorkflowExecutionRow: React.FC = ({ ))} - {error ? ( + {error || abortMetadata ? ( ) : null}