code: func getDiskManager(disk *VirtualDisk, diskOperation string) VirtualDiskProvider {
  	var diskProvider VirtualDiskProvider
  	switch diskOperation {
  	case VirtualDiskDeleteOperation:
  		diskProvider = virtualDiskManager{disk.DiskPath, disk.VolumeOptions}
  	case VirtualDiskCreateOperation:
  		if disk.VolumeOptions.StoragePolicyName != "" || disk.VolumeOptions.VSANStorageProfileData != "" || disk.VolumeOptions.StoragePolicyID != "" {
  			diskProvider = vmDiskManager{disk.DiskPath, disk.VolumeOptions, disk.VMOptions}
  		} else {
  			diskProvider = virtualDiskManager{disk.DiskPath, disk.VolumeOptions}
  		}
  	}
  	return diskProvider
  }
docs: // getDiskManager returns vmDiskManager or vdmDiskManager based on given volumeoptions