Skip to content

Commit c552bd9

Browse files
fix(useVmsSelectionState): improve NIC IP handling after revalidation
1 parent 1cbbdab commit c552bd9

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

ui/src/features/migration/hooks/useVmsSelectionState.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,18 @@ export function useVmsSelectionState(props: VmsSelectionStepProps) {
382382
allIPs = existingVm.ipAddress ?? allIPs
383383
}
384384

385-
let preferredNetworkInterfaces = vm.networkInterfaces
386-
if (existingVm && existingVm.networkInterfaces && existingVm.networkInterfaces.length > 0) {
387-
preferredNetworkInterfaces = existingVm.networkInterfaces
385+
// Base is the freshly fetched NIC list (source of truth for IP presence, e.g. after
386+
// revalidate). Only override per-NIC ipAddress where the user made a custom
387+
// assignment (preserveIp[i] === false) — never blanket-keep the stale existing list,
388+
// or newly-discovered IPs after a revalidate would never surface.
389+
let preferredNetworkInterfaces = normalizeNetworkInterfaces(vm.networkInterfaces)
390+
if (existingVm?.networkInterfaces?.length) {
391+
preferredNetworkInterfaces = mergeNicIpOverrides(
392+
preferredNetworkInterfaces ?? [],
393+
normalizeNetworkInterfaces(existingVm.networkInterfaces) ?? [],
394+
existingVm.preserveIp ?? {},
395+
)
388396
}
389-
preferredNetworkInterfaces = normalizeNetworkInterfaces(preferredNetworkInterfaces)
390397

391398
return {
392399
...vm,

0 commit comments

Comments
 (0)