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); }; /**