vsphere/internal/virtualdevice/virtual_machine_disk_subresource.go
func (r *DiskSubresource) validateStorageRelocateDiff() error {
	log.Printf("[DEBUG] %s: Validating storage vMotion eligibility", r)
	if err := r.blockRelocateAttachedDisks(); err != nil {
		return err
	}
	log.Printf("[DEBUG] %s: Storage vMotion validation successful", r)
	return nil
}
func (r *DiskSubresource) validateStorageRelocateDiff() error {
	log.Printf("[DEBUG] %s: Validating storage vMotion eligibility", r)
	if err := r.blockRelocateAttachedDisks(); err != nil {
		return err
	}
	log.Printf("[DEBUG] %s: Storage vMotion validation successful", r)
	return nil
}
func ( r * DiskSubresource ) validateStorageRelocateDiff ( ) error { log . Printf ( " " , r ) if err := r . blockRelocateAttachedDisks ( ) ; err != nil { return err } log . Printf ( " " , r ) return nil }
// validateStorageRelocateDiff validates certain storage vMotion diffs to make
// sure they are functional. These mainly have to do with limitations
// associated with our tracking of virtual disks via their names.
//
// The current limitations are:
//
// * Externally-attached virtual disks are not allowed to be vMotioned.
// * Disks must match the vSphere naming convention, where the first disk is
// named VMNAME.vmdk, and all other disks are named VMNAME_INDEX.vmdk This is a
// validation we use for cloning as well.
// * Any VM that has been created by a linked clone is blocked from storage
// vMotion full stop.
//
// TODO: Once we have solved the disk tracking issue and are no longer tracking
// disks via their file names, the only restriction that should remain is for
// externally attached disks. That restriction will go away once we figure out
// a strategy for handling when said disks have been moved OOB of the VM
// workflow.
validateStorageRelocateDiff validates certain storage vMotion diffs to make sure they are functional . These mainly have to do with limitations associated with our tracking of virtual disks via their names . The current limitations are : * Externally - attached virtual disks are not allowed to be vMotioned . * Disks must match the vSphere naming convention where the first disk is named VMNAME . vmdk and all other disks are named VMNAME_INDEX . vmdk This is a validation we use for cloning as well . * Any VM that has been created by a linked clone is blocked from storage vMotion full stop . TODO : Once we have solved the disk tracking issue and are no longer tracking disks via their file names the only restriction that should remain is for externally attached disks . That restriction will go away once we figure out a strategy for handling when said disks have been moved OOB of the VM workflow .