Skip to content

Commit a635dae

Browse files
Merge pull request #1027 from anwesha-palit-redhat/fix/SRVKP-10037
SRVKP-10037: Fixed task node status in pipeline run topology which was not updating in real time
2 parents 4d31b7e + 55c5362 commit a635dae

4 files changed

Lines changed: 26 additions & 32 deletions

File tree

src/components/hooks/useTektonResults.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ export const useTRRuns = <Kind extends K8sResourceCommon>(
1515
isTektonResultEnabled?: boolean,
1616
skipFetch?: boolean,
1717
): [Kind[], boolean, Error | undefined] => {
18-
if (!isTektonResultEnabled) {
19-
return [[] as Kind[], true, undefined];
20-
}
2118
const isDevConsoleProxyAvailable = useFlag(FLAGS.DEVCONSOLE_PROXY);
2219
const fetchedRef = useRef(false);
2320
const [results, setResults] = useState<[Kind[], boolean, Error | undefined]>([
@@ -52,7 +49,7 @@ export const useTRRuns = <Kind extends K8sResourceCommon>(
5249
}
5350
}
5451
};
55-
!skipFetch && fetchResults();
52+
!skipFetch && isTektonResultEnabled && fetchResults();
5653
return () => {
5754
fetchedRef.current = false;
5855
};
@@ -62,7 +59,10 @@ export const useTRRuns = <Kind extends K8sResourceCommon>(
6259
isDevConsoleProxyAvailable,
6360
stableOptions,
6461
skipFetch,
62+
isTektonResultEnabled,
6563
]);
66-
64+
if (!isTektonResultEnabled) {
65+
return [[], true, undefined];
66+
}
6767
return results;
6868
};

src/components/pipeline-topology/PipelineTaskNode.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { FunctionComponent } from 'react';
2-
import { useRef, useMemo, memo } from 'react';
2+
import { useRef, useMemo } from 'react';
33
import { useTranslation } from 'react-i18next';
44
import { Tooltip } from '@patternfly/react-core';
55
import {
@@ -15,9 +15,9 @@ import {
1515
WhenDecorator,
1616
WithContextMenuProps,
1717
WithSelectionProps,
18+
observer,
1819
} from '@patternfly/react-topology';
1920
import classNames from 'classnames';
20-
import { observer } from 'mobx-react';
2121
import { Link } from 'react-router';
2222
import { NodeType } from './const';
2323
import { PipelineRunModel, TaskModel } from '../../models';
@@ -223,4 +223,4 @@ const PipelineTaskNode: FunctionComponent<PipelineTaskNodeProps> = ({
223223
);
224224
};
225225

226-
export default memo(observer(PipelineTaskNode));
226+
export default observer(PipelineTaskNode);

src/components/utils/__tests__/pipeline-utils.spec.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ describe('pipeline-utils ', () => {
320320
const testTaskRuns = Object.keys(
321321
pipelineRunWithoutStatus.status.taskRuns,
322322
).map((trName) => ({
323-
apiVersion: 'v1alpha1',
323+
apiVersion: 'v1',
324324
kind: 'TaskRun',
325325
metadata: {
326326
labels: {
@@ -332,15 +332,12 @@ describe('pipeline-utils ', () => {
332332
spec: {},
333333
pipelineTaskName:
334334
pipelineRunWithoutStatus.status.taskRuns[trName].pipelineTaskName,
335-
status: pipelineRunWithoutStatus.status.taskRuns[trName].status,
335+
status: _.omit(pipelineRunWithoutStatus.status.taskRuns[trName].status, [
336+
'conditions',
337+
'startTime',
338+
'completionTime',
339+
]),
336340
}));
337-
_.forIn(pipelineRunWithoutStatus.status.taskRuns, (taskRun, name) => {
338-
pipelineRunWithoutStatus.status.taskRuns[name] = _.omit(taskRun, [
339-
'status.conditions',
340-
'status.startTime',
341-
'status.completionTime',
342-
]);
343-
});
344341
const taskList = appendPipelineRunStatus(
345342
pipeline,
346343
pipelineRunWithoutStatus,

src/components/utils/pipeline-utils.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,17 @@ export const appendPipelineRunStatus = (
150150
if (
151151
pipelineRun.spec.status === SucceedConditionReason.PipelineRunCancelled
152152
) {
153-
return _.merge(task, { status: { reason: ComputedStatus.Cancelled } });
153+
return { ...task, status: { reason: ComputedStatus.Cancelled } };
154154
}
155155
if (
156156
pipelineRun.spec.status === SucceedConditionReason.PipelineRunPending
157157
) {
158-
return _.merge(task, { status: { reason: ComputedStatus.Idle } });
158+
return { ...task, status: { reason: ComputedStatus.Idle } };
159159
}
160-
return _.merge(task, { status: { reason: ComputedStatus.Failed } });
160+
if (pipelineRunStatus(pipelineRun) === ComputedStatus.Failed) {
161+
return { ...task, status: { reason: ComputedStatus.Failed } };
162+
}
163+
return { ...task, status: { reason: ComputedStatus.Pending } };
161164
}
162165

163166
const taskRun = _.find(
@@ -167,16 +170,10 @@ export const appendPipelineRunStatus = (
167170
);
168171
const taskStatus: TaskRunStatus = taskRun?.status;
169172

170-
const mTask = _.merge(task, {
171-
status: pipelineRun?.status?.taskRuns
172-
? _.get(
173-
_.find(pipelineRun.status.taskRuns, {
174-
pipelineTaskName: task.name,
175-
}),
176-
'status',
177-
)
178-
: taskStatus,
179-
});
173+
const mTask = {
174+
...task,
175+
status: taskStatus ? { ...taskStatus } : undefined,
176+
};
180177
// append task duration
181178
if (mTask.status && mTask.status.completionTime && mTask.status.startTime) {
182179
const date =
@@ -187,9 +184,9 @@ export const appendPipelineRunStatus = (
187184
// append task status
188185
if (!mTask.status) {
189186
mTask.status = { reason: ComputedStatus.Pending };
190-
} else if (mTask.status && mTask.status.conditions) {
187+
} else if (mTask.status.conditions) {
191188
mTask.status.reason = pipelineRunStatus(mTask) || ComputedStatus.Pending;
192-
} else if (mTask.status && !mTask.status.reason) {
189+
} else if (!mTask.status.reason) {
193190
mTask.status.reason = ComputedStatus.Pending;
194191
}
195192
return mTask;

0 commit comments

Comments
 (0)