Skip to content
Prev Previous commit
Next Next commit
Avoid potential crash finding snapshot information.
This is mostly cosmetic as the importer pod isn't going to be able to
transfer anything anyway, but an error message is nicer than a panic.

Signed-off-by: Matthew Arnold <marnold@redhat.com>
  • Loading branch information
mrnold committed Mar 14, 2025
commit 5dff7516380f14207c96e188485a9f75ad9c27a4
12 changes: 9 additions & 3 deletions pkg/importer/vddk-datasource_amd64.go
Original file line number Diff line number Diff line change
Expand Up @@ -379,11 +379,17 @@ func (vmware *VMwareClient) FindDiskInRootSnapshotParent(snapshots []types.Virtu
var parent *types.VirtualDeviceFileBackingInfo
switch disk.Backing.(type) {
case *types.VirtualDiskFlatVer1BackingInfo:
parent = &disk.Backing.(*types.VirtualDiskFlatVer1BackingInfo).Parent.VirtualDeviceFileBackingInfo
if info := disk.Backing.(*types.VirtualDiskFlatVer1BackingInfo); info != nil && info.Parent != nil {
parent = &info.Parent.VirtualDeviceFileBackingInfo
}
case *types.VirtualDiskFlatVer2BackingInfo:
parent = &disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo).Parent.VirtualDeviceFileBackingInfo
if info := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo); info != nil && info.Parent != nil {
parent = &info.VirtualDeviceFileBackingInfo
}
case *types.VirtualDiskRawDiskMappingVer1BackingInfo:
parent = &disk.Backing.(*types.VirtualDiskRawDiskMappingVer1BackingInfo).Parent.VirtualDeviceFileBackingInfo
if info := disk.Backing.(*types.VirtualDiskRawDiskMappingVer1BackingInfo); info != nil && info.Parent != nil {
parent = &info.VirtualDeviceFileBackingInfo
}
}
if parent != nil && parent.FileName == fileName {
return disk
Expand Down