Skip to content

Commit 9f866a2

Browse files
Merge pull request #98 from openshift-cherrypick-robot/cherry-pick-96-to-release-4.18
[release-4.18] OCPBUGS-54581: fix topology crash
2 parents bf58219 + 77a89b9 commit 9f866a2

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/views/states/topology/utils/LevelsLayout.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
2020

2121
// Method to sort nodes by their level
2222
private sortNodesByLevel(nodes: LayoutNode[]): LayoutNode[] {
23-
return nodes.sort((a, b) => {
23+
return (nodes || []).sort((a, b) => {
2424
const aLevel = a?.element?.getData()?.level;
2525
const bLevel = b?.element?.getData()?.level;
2626
return aLevel - bLevel;
@@ -30,7 +30,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
3030
// Method to count nodes per level
3131
private countNodesPerLevel(nodes: LayoutNode[]): { [level: number]: number } {
3232
const levelCounts: { [level: number]: number } = {};
33-
nodes.forEach((node) => {
33+
(nodes || []).forEach((node) => {
3434
const level = node?.element?.getData()?.level;
3535
if (!levelCounts[level]) {
3636
levelCounts[level] = 0;
@@ -65,7 +65,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
6565
let padX = 0;
6666
let padY = 0;
6767

68-
groupNodes.forEach((node) => {
68+
(groupNodes || []).forEach((node) => {
6969
if (padX < node.width) {
7070
padX = node.width;
7171
}
@@ -94,7 +94,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
9494
let maxX = x;
9595
let maxY = y;
9696

97-
sortedNodes.forEach((node) => {
97+
(sortedNodes || []).forEach((node) => {
9898
if (node?.element?.getData()?.level !== currentLevel) {
9999
// Move to the next level when the level changes
100100
currentLevel = node?.element?.getData()?.level;
@@ -143,7 +143,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
143143
// Method to group nodes by their parent group
144144
private groupNodesByParent(): { [groupId: string]: LayoutNode[] } {
145145
const groups: { [groupId: string]: LayoutNode[] } = {};
146-
this.nodes.forEach((node) => {
146+
(this.nodes || []).forEach((node) => {
147147
const parentGroupId = node.element.getParent()?.getId();
148148
if (parentGroupId) {
149149
if (!groups[parentGroupId]) {
@@ -160,7 +160,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
160160
maxGroupWidth: number;
161161
maxGroupHeight: number;
162162
} {
163-
const groupDimensions = Object.keys(groups).map((key) =>
163+
const groupDimensions = Object.keys(groups || {}).map((key) =>
164164
this.positionGroupNodes(groups[key], 0, 0),
165165
);
166166
const maxGroupWidth = Math.max(...groupDimensions.map((dim) => dim.width));

src/views/states/topology/utils/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ const getNNCEConfiguredInterfaces = (
236236

237237
const configured: NodeNetworkConfigurationInterface[] = [];
238238

239-
const desiredInterfaces = enhancement.status.desiredState.interfaces;
240-
const currentInterfaces = state.status.currentState.interfaces;
239+
const desiredInterfaces = enhancement.status.desiredState.interfaces || [];
240+
const currentInterfaces = state.status.currentState.interfaces || [];
241241

242242
desiredInterfaces.forEach((desiredIface) => {
243243
if (findInterfaceByName(currentInterfaces, desiredIface.name)) {

0 commit comments

Comments
 (0)