From 3310be60e8302622b76168a2bcd0f43e98246aea Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Thu, 16 Dec 2021 12:25:29 -0500 Subject: [PATCH 1/7] feat: show details panel for failed node Signed-off-by: Pianist038801 --- .../ExecutionWorkflowGraph.tsx | 15 ++- .../NodeExecutionDetailsPanelContent.tsx | 106 +++++++++++++++++- 2 files changed, 109 insertions(+), 12 deletions(-) diff --git a/src/components/Executions/ExecutionDetails/ExecutionWorkflowGraph.tsx b/src/components/Executions/ExecutionDetails/ExecutionWorkflowGraph.tsx index 350a21ab1..8cdb45129 100644 --- a/src/components/Executions/ExecutionDetails/ExecutionWorkflowGraph.tsx +++ b/src/components/Executions/ExecutionDetails/ExecutionWorkflowGraph.tsx @@ -26,7 +26,7 @@ export const ExecutionWorkflowGraph: React.FC = ({ makeWorkflowQuery(useQueryClient(), workflowId) ); const nodeExecutionsById = React.useMemo( - () => keyBy(nodeExecutions, 'scopedId'), + () => keyBy(nodeExecutions, 'id.nodeId'), [nodeExecutions] ); @@ -36,10 +36,6 @@ export const ExecutionWorkflowGraph: React.FC = ({ if (nodeId === startNodeId || nodeId === endNodeId) { return false; } - const execution = nodeExecutionsById[nodeId]; - if (!execution) { - return false; - } return true; }); setSelectedNodes(validSelection); @@ -48,7 +44,14 @@ export const ExecutionWorkflowGraph: React.FC = ({ // Note: flytegraph allows multiple selection, but we only support showing // a single item in the details panel const selectedExecution = selectedNodes.length - ? nodeExecutionsById[selectedNodes[0]].id + ? nodeExecutionsById[selectedNodes[0]] + ? nodeExecutionsById[selectedNodes[0]].id + : { + nodeId: selectedNodes[0], + executionId: + nodeExecutionsById[Object.keys(nodeExecutionsById)[0]].id + .executionId + } : null; const onCloseDetailsPanel = () => setSelectedNodes([]); diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index b41a1fd3a..7ddf3258f 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -6,11 +6,13 @@ import Close from '@material-ui/icons/Close'; import * as classnames from 'classnames'; import { useCommonStyles } from 'components/common/styles'; import { InfoIcon } from 'components/common/Icons/InfoIcon'; +import { bodyFontFamily, smallFontSize } from 'components/Theme/constants'; import { ExecutionStatusBadge } from 'components/Executions/ExecutionStatusBadge'; import { LocationState } from 'components/hooks/useLocationState'; import { useTabState } from 'components/hooks/useTabState'; import { LocationDescriptor } from 'history'; import { PaginatedEntityResponse } from 'models/AdminEntity/types'; +import { Workflow } from 'models/Workflow/types'; import { NodeExecution, NodeExecutionIdentifier, @@ -19,7 +21,7 @@ import { import { TaskTemplate } from 'models/Task/types'; import * as React from 'react'; import Skeleton from 'react-loading-skeleton'; -import { useQuery } from 'react-query'; +import { useQuery, useQueryClient } from 'react-query'; import { Link as RouterLink } from 'react-router-dom'; import { Routes } from 'routes/routes'; import { NodeExecutionCacheStatus } from '../NodeExecutionCacheStatus'; @@ -35,11 +37,29 @@ import { NodeExecutionOutputs } from './NodeExecutionOutputs'; import { NodeExecutionTaskDetails } from './NodeExecutionTaskDetails'; import { getTaskExecutionDetailReasons } from './utils'; import { ExpandableMonospaceText } from '../../common/ExpandableMonospaceText'; +import { fetchWorkflowExecution } from '../useWorkflowExecution'; +import { RemoteLiteralMapViewer } from 'components/Literals/RemoteLiteralMapViewer'; +import { fetchWorkflow } from 'components/Workflow/workflowQueries'; const useStyles = makeStyles((theme: Theme) => { const paddingVertical = `${theme.spacing(2)}px`; const paddingHorizontal = `${theme.spacing(3)}px`; return { + notRunStatus: { + alignItems: 'center', + backgroundColor: 'gray', + borderRadius: '4px', + color: theme.palette.text.primary, + display: 'flex', + flex: '0 0 auto', + height: theme.spacing(3), + fontSize: smallFontSize, + justifyContent: 'center', + textTransform: 'uppercase', + width: theme.spacing(11), + fontFamily: bodyFontFamily, + fontWeight: 'bold' + }, closeButton: { marginLeft: theme.spacing(1) }, @@ -218,13 +238,62 @@ const NodeExecutionTabs: React.FC<{ ); }; +const WorkflowTabs: React.FC<{ + workflow: Workflow; + nodeId: string; +}> = ({ workflow, nodeId }) => { + const styles = useStyles(); + const tabState = useTabState(tabIds, tabIds.inputs); + const commonStyles = useCommonStyles(); + let tabContent: JSX.Element | null = null; + const currentNode = workflow.closure?.compiledWorkflow.primary.template.nodes.find( + node => node.id === nodeId + ); + const taskName = currentNode.metadata.name; + const taskTemplate = workflow.closure.compiledWorkflow.tasks.find(task => + taskName.includes(task.template.id.name) + ); + + switch (tabState.value) { + case tabIds.inputs: { + tabContent = taskTemplate ? ( +
+
+ +
+
+ ) : null; + break; + } + case tabIds.task: { + tabContent = taskTemplate ? ( + + ) : null; + break; + } + } + return ( + <> + + + {!!taskTemplate && } + +
{tabContent}
+ + ); +}; + /** DetailsPanel content which renders execution information about a given NodeExecution */ export const NodeExecutionDetailsPanelContent: React.FC = ({ nodeExecutionId, onClose }) => { + const queryClient = useQueryClient(); const [isReasonsVisible, setReasonsVisible] = React.useState(false); + const [workflow, setWorkflow] = React.useState(null); const nodeExecutionQuery = useQuery({ ...makeNodeExecutionQuery(nodeExecutionId), // The selected NodeExecution has been fetched at this point, we don't want to @@ -238,6 +307,23 @@ export const NodeExecutionDetailsPanelContent: React.FC { + const workflowExecution = await fetchWorkflowExecution( + queryClient, + nodeExecutionId.executionId + ); + const workflowData: Workflow = await fetchWorkflow( + queryClient, + workflowExecution.closure.workflowId + ); + if (workflowData) setWorkflow(workflowData); + }; + + if (!nodeExecution) { + getWorkflow(); + } else { + if (workflow) setWorkflow(null); + } const listTaskExecutionsQuery = useQuery< PaginatedEntityResponse, Error @@ -299,7 +385,9 @@ export const NodeExecutionDetailsPanelContent: React.FC )} - ) : null; + ) : ( +
NOT RUN
+ ); const detailsContent = nodeExecution ? ( <> @@ -319,7 +407,6 @@ export const NodeExecutionDetailsPanelContent: React.FC ) : null; - return (
@@ -348,13 +435,20 @@ export const NodeExecutionDetailsPanelContent: React.FC - {displayName} + {workflow ? workflow.id.name : displayName} {statusContent} - {detailsContent} + {!workflow && detailsContent}
- {tabsContent} + {workflow ? ( + + ) : ( + tabsContent + )}
); }; From 9c0bac816d3debcb943630a24ac487c367283981 Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Mon, 20 Dec 2021 18:40:49 -0500 Subject: [PATCH 2/7] feat: use DAG for details panel content Signed-off-by: Pianist038801 --- .../NodeExecutionDetailsPanelContent.tsx | 46 ++++++++++--------- src/components/WorkflowGraph/utils.ts | 20 ++++++-- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index 7ddf3258f..05de1e343 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -40,6 +40,11 @@ import { ExpandableMonospaceText } from '../../common/ExpandableMonospaceText'; import { fetchWorkflowExecution } from '../useWorkflowExecution'; import { RemoteLiteralMapViewer } from 'components/Literals/RemoteLiteralMapViewer'; import { fetchWorkflow } from 'components/Workflow/workflowQueries'; +import { dNode } from 'models/Graph/types'; +import { + transformWorkflowToKeyedDag, + getNodeNameFromDag +} from 'components/WorkflowGraph/utils'; const useStyles = makeStyles((theme: Theme) => { const paddingVertical = `${theme.spacing(2)}px`; @@ -239,20 +244,15 @@ const NodeExecutionTabs: React.FC<{ }; const WorkflowTabs: React.FC<{ - workflow: Workflow; + dagData: dNode; nodeId: string; -}> = ({ workflow, nodeId }) => { +}> = ({ dagData, nodeId }) => { const styles = useStyles(); const tabState = useTabState(tabIds, tabIds.inputs); const commonStyles = useCommonStyles(); let tabContent: JSX.Element | null = null; - const currentNode = workflow.closure?.compiledWorkflow.primary.template.nodes.find( - node => node.id === nodeId - ); - const taskName = currentNode.metadata.name; - const taskTemplate = workflow.closure.compiledWorkflow.tasks.find(task => - taskName.includes(task.template.id.name) - ); + console.log('555', { dagData, nodeId }); + const taskTemplate = dagData[nodeId].value.template; switch (tabState.value) { case tabIds.inputs: { @@ -260,7 +260,7 @@ const WorkflowTabs: React.FC<{
@@ -293,7 +293,7 @@ export const NodeExecutionDetailsPanelContent: React.FC { const queryClient = useQueryClient(); const [isReasonsVisible, setReasonsVisible] = React.useState(false); - const [workflow, setWorkflow] = React.useState(null); + const [dag, setDag] = React.useState(null); const nodeExecutionQuery = useQuery({ ...makeNodeExecutionQuery(nodeExecutionId), // The selected NodeExecution has been fetched at this point, we don't want to @@ -307,7 +307,7 @@ export const NodeExecutionDetailsPanelContent: React.FC { + const getWorkflowDag = async () => { const workflowExecution = await fetchWorkflowExecution( queryClient, nodeExecutionId.executionId @@ -316,13 +316,16 @@ export const NodeExecutionDetailsPanelContent: React.FC, @@ -435,17 +438,16 @@ export const NodeExecutionDetailsPanelContent: React.FC - {workflow ? workflow.id.name : displayName} + {dag + ? getNodeNameFromDag(dag, nodeExecutionId.nodeId) + : displayName} {statusContent} - {!workflow && detailsContent} + {!dag && detailsContent} - {workflow ? ( - + {dag ? ( + ) : ( tabsContent )} diff --git a/src/components/WorkflowGraph/utils.ts b/src/components/WorkflowGraph/utils.ts index 280123752..5b64ad06d 100644 --- a/src/components/WorkflowGraph/utils.ts +++ b/src/components/WorkflowGraph/utils.ts @@ -1,10 +1,10 @@ import { Identifier } from 'models/Common/types'; import { endNodeId, startNodeId } from 'models/Node/constants'; -import { CompiledWorkflow } from 'models/Workflow/types'; +import { CompiledWorkflow, Workflow } from 'models/Workflow/types'; import { CompiledNode, TaskNode } from 'models/Node/types'; import { CompiledTask, TaskTemplate } from 'models/Task/types'; -import { dTypes } from 'models/Graph/types'; - +import { dTypes, dNode } from 'models/Graph/types'; +import { transformerWorkflowToDAG } from './transformerWorkflowToDAG'; /** * @TODO these are dupes for testing, remove once tests fixed */ @@ -116,3 +116,17 @@ export const getTaskTypeFromCompiledNode = ( } return null; }; + +export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => + dagData[nodeId].value.taskNode.referenceId.name; + +export const transformWorkflowToKeyedDag = (workflow: Workflow) => { + const dagData = transformerWorkflowToDAG( + workflow.closure?.compiledWorkflow + ); + const data = {}; + dagData.nodes.forEach(node => { + data[`${node.id}`] = node; + }); + return data; +}; From 24d3ccde8c94ff489f68e3f55248843c5cf58195 Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Tue, 21 Dec 2021 11:54:36 -0500 Subject: [PATCH 3/7] fix: failing tests Signed-off-by: Pianist038801 --- .../ExecutionDetails/NodeExecutionDetailsPanelContent.tsx | 3 ++- src/components/WorkflowGraph/utils.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index 05de1e343..a3c4f9492 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -261,6 +261,7 @@ const WorkflowTabs: React.FC<{
@@ -293,7 +294,7 @@ export const NodeExecutionDetailsPanelContent: React.FC { const queryClient = useQueryClient(); const [isReasonsVisible, setReasonsVisible] = React.useState(false); - const [dag, setDag] = React.useState(null); + const [dag, setDag] = React.useState(null); const nodeExecutionQuery = useQuery({ ...makeNodeExecutionQuery(nodeExecutionId), // The selected NodeExecution has been fetched at this point, we don't want to diff --git a/src/components/WorkflowGraph/utils.ts b/src/components/WorkflowGraph/utils.ts index 5b64ad06d..34c762ffa 100644 --- a/src/components/WorkflowGraph/utils.ts +++ b/src/components/WorkflowGraph/utils.ts @@ -121,6 +121,8 @@ export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => dagData[nodeId].value.taskNode.referenceId.name; export const transformWorkflowToKeyedDag = (workflow: Workflow) => { + if (!workflow.closure?.compiledWorkflow) return {}; + const dagData = transformerWorkflowToDAG( workflow.closure?.compiledWorkflow ); From a7e9b411792d0e7ff604393ce6307a5d4ab05f28 Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Thu, 23 Dec 2021 10:29:19 -0500 Subject: [PATCH 4/7] fix: failing tests Signed-off-by: Pianist038801 --- assetsTransformer.js | 9 +++++++++ jest.config.js | 4 ++++ .../NodeExecutionDetailsPanelContent.tsx | 1 - .../WorkflowGraph/transformerWorkflowToDAG.tsx | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 assetsTransformer.js diff --git a/assetsTransformer.js b/assetsTransformer.js new file mode 100644 index 000000000..6e5f72bcc --- /dev/null +++ b/assetsTransformer.js @@ -0,0 +1,9 @@ +const path = require('path'); + +module.exports = { + process(src, filename, config, options) { + return ( + 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';' + ); + } +}; diff --git a/jest.config.js b/jest.config.js index ef1a2f6b1..976cd82d9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -19,6 +19,10 @@ module.exports = { '^.+\\.(j|t)sx?$': 'ts-jest' }, transformIgnorePatterns: ['/node_modules/(?!@flyteorg/flyteidl)'], + moduleNameMapper: { + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/assetsTransformer.js' + }, coverageDirectory: '.coverage', collectCoverageFrom: ['**/*.{ts,tsx}'], coveragePathIgnorePatterns: [ diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index a3c4f9492..34e7de72f 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -251,7 +251,6 @@ const WorkflowTabs: React.FC<{ const tabState = useTabState(tabIds, tabIds.inputs); const commonStyles = useCommonStyles(); let tabContent: JSX.Element | null = null; - console.log('555', { dagData, nodeId }); const taskTemplate = dagData[nodeId].value.template; switch (tabState.value) { diff --git a/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx b/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx index bacd5d99d..8386d98bc 100644 --- a/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx +++ b/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx @@ -255,7 +255,7 @@ export const buildOutWorkflowEdges = ( const list = context.downstream[ingress].ids; for (let i = 0; i < list.length; i++) { const edge: dEdge = { - sourceId: nodeMap[ingress].dNode.scopedId, + sourceId: nodeMap[ingress] && nodeMap[ingress].dNode.scopedId, targetId: nodeMap[list[i]].dNode.scopedId }; root.edges.push(edge); From 04f9376bc0086ed80345b392c0cefa00f66c29a2 Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Wed, 5 Jan 2022 11:58:26 -0500 Subject: [PATCH 5/7] fix: compound nodeId bug Signed-off-by: Pianist038801 --- .../NodeExecutionDetailsPanelContent.tsx | 3 ++- src/components/WorkflowGraph/utils.ts | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index 34e7de72f..5c5e74904 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -251,7 +251,8 @@ const WorkflowTabs: React.FC<{ const tabState = useTabState(tabIds, tabIds.inputs); const commonStyles = useCommonStyles(); let tabContent: JSX.Element | null = null; - const taskTemplate = dagData[nodeId].value.template; + const id = nodeId.slice(nodeId.lastIndexOf('-') + 1); + const taskTemplate = dagData[id].value.template; switch (tabState.value) { case tabIds.inputs: { diff --git a/src/components/WorkflowGraph/utils.ts b/src/components/WorkflowGraph/utils.ts index 34c762ffa..2d7884a74 100644 --- a/src/components/WorkflowGraph/utils.ts +++ b/src/components/WorkflowGraph/utils.ts @@ -117,8 +117,22 @@ export const getTaskTypeFromCompiledNode = ( return null; }; -export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => - dagData[nodeId].value.taskNode.referenceId.name; +export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => { + const id = nodeId.slice(nodeId.lastIndexOf('-') + 1); + const value = dagData[id].value; + + if (value.taskNode) { + return value.taskNode.referenceId.name; + } else if (value.workflowNode) { + const { + workflowNode: { + subWorkflowRef: { name } + } + } = value; + return name; + } + return ''; +}; export const transformWorkflowToKeyedDag = (workflow: Workflow) => { if (!workflow.closure?.compiledWorkflow) return {}; From b4ab97a51501be779ae54dd22ebae8634ec077e0 Mon Sep 17 00:00:00 2001 From: Pianist038801 Date: Fri, 14 Jan 2022 13:25:11 -0500 Subject: [PATCH 6/7] fix: feedback on the PR Signed-off-by: Pianist038801 --- assetsTransformer.js | 2 +- .../NodeExecutionDetailsPanelContent.tsx | 9 ++++++++- src/components/Workflow/StaticGraphContainer.tsx | 4 ++-- src/components/WorkflowGraph/WorkflowGraph.tsx | 4 ++-- .../WorkflowGraph/transformerWorkflowToDAG.tsx | 2 +- src/components/WorkflowGraph/utils.ts | 11 +++-------- .../flytegraph/ReactFlow/ReactFlowGraphComponent.tsx | 2 +- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/assetsTransformer.js b/assetsTransformer.js index 6e5f72bcc..bbdc8a401 100644 --- a/assetsTransformer.js +++ b/assetsTransformer.js @@ -1,7 +1,7 @@ const path = require('path'); module.exports = { - process(src, filename, config, options) { + process(_src, filename, _config, _options) { return ( 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';' ); diff --git a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx index 5c5e74904..b6e96e92b 100644 --- a/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx +++ b/src/components/Executions/ExecutionDetails/NodeExecutionDetailsPanelContent.tsx @@ -1,3 +1,4 @@ +import { useEffect, useState } from 'react'; import { IconButton, Typography } from '@material-ui/core'; import { makeStyles, Theme } from '@material-ui/core/styles'; import Tab from '@material-ui/core/Tab'; @@ -292,6 +293,12 @@ export const NodeExecutionDetailsPanelContent: React.FC { + const [mounted, setMounted] = useState(true); + useEffect(() => { + return () => { + setMounted(false); + }; + }, []); const queryClient = useQueryClient(); const [isReasonsVisible, setReasonsVisible] = React.useState(false); const [dag, setDag] = React.useState(null); @@ -319,7 +326,7 @@ export const NodeExecutionDetailsPanelContent: React.FC { const workflow = props.closure.compiledWorkflow; const version = props.id.version; - const dag: dNode = transformerWorkflowToDAG(workflow); + const dag: dNode = transformerWorkflowToDag(workflow); const rfGraphJson = ConvertFlyteDagToReactFlows({ root: dag, maxRenderDepth: 0, diff --git a/src/components/WorkflowGraph/WorkflowGraph.tsx b/src/components/WorkflowGraph/WorkflowGraph.tsx index cc8965d3e..3f96917ab 100644 --- a/src/components/WorkflowGraph/WorkflowGraph.tsx +++ b/src/components/WorkflowGraph/WorkflowGraph.tsx @@ -1,4 +1,4 @@ -import { transformerWorkflowToDAG } from './transformerWorkflowToDAG'; +import { transformerWorkflowToDag } from './transformerWorkflowToDag'; import { dNode } from 'models/Graph/types'; import { Workflow } from 'models/Workflow/types'; import * as React from 'react'; @@ -31,7 +31,7 @@ function workflowToDag(workflow: Workflow): PrepareDAGResult { throw new Error('Workflow closure missing a compiled workflow'); } const { compiledWorkflow } = workflow.closure; - const dag: dNode = transformerWorkflowToDAG(compiledWorkflow); + const dag: dNode = transformerWorkflowToDag(compiledWorkflow); return { dag }; } catch (e) { return { diff --git a/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx b/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx index 8386d98bc..8247bf98a 100644 --- a/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx +++ b/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx @@ -25,7 +25,7 @@ import { * @param context input can be either CompiledWorkflow or CompiledNode * @returns Display name */ -export const transformerWorkflowToDAG = ( +export const transformerWorkflowToDag = ( workflow: CompiledWorkflowClosure ): dNode => { const { primary } = workflow; diff --git a/src/components/WorkflowGraph/utils.ts b/src/components/WorkflowGraph/utils.ts index 2d7884a74..49b3da310 100644 --- a/src/components/WorkflowGraph/utils.ts +++ b/src/components/WorkflowGraph/utils.ts @@ -4,7 +4,7 @@ import { CompiledWorkflow, Workflow } from 'models/Workflow/types'; import { CompiledNode, TaskNode } from 'models/Node/types'; import { CompiledTask, TaskTemplate } from 'models/Task/types'; import { dTypes, dNode } from 'models/Graph/types'; -import { transformerWorkflowToDAG } from './transformerWorkflowToDAG'; +import { transformerWorkflowToDag } from './transformerWorkflowToDag'; /** * @TODO these are dupes for testing, remove once tests fixed */ @@ -124,12 +124,7 @@ export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => { if (value.taskNode) { return value.taskNode.referenceId.name; } else if (value.workflowNode) { - const { - workflowNode: { - subWorkflowRef: { name } - } - } = value; - return name; + return value.workflowNode.subWorkflowRef.name; } return ''; }; @@ -137,7 +132,7 @@ export const getNodeNameFromDag = (dagData: dNode, nodeId: string) => { export const transformWorkflowToKeyedDag = (workflow: Workflow) => { if (!workflow.closure?.compiledWorkflow) return {}; - const dagData = transformerWorkflowToDAG( + const dagData = transformerWorkflowToDag( workflow.closure?.compiledWorkflow ); const data = {}; diff --git a/src/components/flytegraph/ReactFlow/ReactFlowGraphComponent.tsx b/src/components/flytegraph/ReactFlow/ReactFlowGraphComponent.tsx index f6e3b439c..350091816 100644 --- a/src/components/flytegraph/ReactFlow/ReactFlowGraphComponent.tsx +++ b/src/components/flytegraph/ReactFlow/ReactFlowGraphComponent.tsx @@ -7,7 +7,7 @@ import { Legend } from './NodeStatusLegend'; /** * Renders workflow graph using React Flow. - * @param props.data DAG from transformerWorkflowToDAG + * @param props.data DAG from transformerWorkflowToDag * @returns ReactFlow Graph as */ const ReactFlowGraphComponent = props => { From e63e4a3f6f15b15c7d58b31f6ffb94c5a66b5b95 Mon Sep 17 00:00:00 2001 From: Nastya Rusina Date: Sat, 15 Jan 2022 16:35:54 -0800 Subject: [PATCH 7/7] chore: force casesensitive file rename to be consumed by git Signed-off-by: Nastya Rusina --- ...{transformerWorkflowToDAG.tsx => transformerWorkflowToDag.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/components/WorkflowGraph/{transformerWorkflowToDAG.tsx => transformerWorkflowToDag.tsx} (100%) diff --git a/src/components/WorkflowGraph/transformerWorkflowToDAG.tsx b/src/components/WorkflowGraph/transformerWorkflowToDag.tsx similarity index 100% rename from src/components/WorkflowGraph/transformerWorkflowToDAG.tsx rename to src/components/WorkflowGraph/transformerWorkflowToDag.tsx