From 13ad3423a3c97d15040d186876e423c2f8695cad Mon Sep 17 00:00:00 2001 From: Phillip Rhodes Date: Wed, 30 Apr 2025 09:27:10 -0400 Subject: [PATCH] Avoid CPU helper text error if CPU threads is undefined --- .../components/TotalCPUHelperText/CPUTopologyHelperText.tsx | 3 ++- .../CPUMemoryModal/components/CPUInput/utils/utils.ts | 3 ++- src/utils/resources/template/utils/flavor.ts | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/utils/components/CPUMemoryModal/components/CPUInput/components/CPUTopologyInput/components/TotalCPUHelperText/CPUTopologyHelperText.tsx b/src/utils/components/CPUMemoryModal/components/CPUInput/components/CPUTopologyInput/components/TotalCPUHelperText/CPUTopologyHelperText.tsx index 7d1d7f083f..b176783d10 100644 --- a/src/utils/components/CPUMemoryModal/components/CPUInput/components/CPUTopologyInput/components/TotalCPUHelperText/CPUTopologyHelperText.tsx +++ b/src/utils/components/CPUMemoryModal/components/CPUInput/components/CPUTopologyInput/components/TotalCPUHelperText/CPUTopologyHelperText.tsx @@ -15,7 +15,8 @@ const CPUTopologyHelperText: FC = ({ cpu }) => { const { t } = useKubevirtTranslation(); const { cores, sockets, threads } = cpu || {}; - const totalCPU = cores * sockets * threads; + // VMs migrated from vSphere may not have spec.template.spec.domain.cpu.threads set + const totalCPU = cores * sockets * (threads || 1); return (
diff --git a/src/utils/components/CPUMemoryModal/components/CPUInput/utils/utils.ts b/src/utils/components/CPUMemoryModal/components/CPUInput/utils/utils.ts index 8c2b29a604..d542d0e638 100644 --- a/src/utils/components/CPUMemoryModal/components/CPUInput/utils/utils.ts +++ b/src/utils/components/CPUMemoryModal/components/CPUInput/utils/utils.ts @@ -16,7 +16,8 @@ export const getUpdatedCPU = (cpu: V1CPU, newValue: number, fieldChanged: CPUCom }; export const convertTopologyToVCPUs = (cpu: V1CPU): number => - cpu?.cores * cpu?.sockets * cpu?.threads; + // VMs migrated from vSphere may not have spec.template.spec.domain.cpu.threads set + cpu?.cores * cpu?.sockets * (cpu?.threads || 1); export const formatVCPUsAsSockets = (cpu: V1CPU): V1CPU => { const numVCPUs = convertTopologyToVCPUs(cpu); diff --git a/src/utils/resources/template/utils/flavor.ts b/src/utils/resources/template/utils/flavor.ts index 23bf6f8ef5..ec8da86b55 100644 --- a/src/utils/resources/template/utils/flavor.ts +++ b/src/utils/resources/template/utils/flavor.ts @@ -26,7 +26,9 @@ export const parseCPU = (cpu: V1CPU): V1CPU => { */ export const vCPUCount = (cpu: V1CPU): number => { const parsedCpu = parseCPU(cpu); - return parsedCpu.sockets * parsedCpu.cores * parsedCpu.threads; + + // VMs migrated from vSphere may not have spec.template.spec.domain.cpu.threads set + return parsedCpu.sockets * parsedCpu.cores * (parsedCpu.threads || 1); }; /**