code: func (vmdisk vmDiskManager) createDummyVM(ctx context.Context, datacenter *vclib.Datacenter, vmName string) (*vclib.VirtualMachine, error) {
  	// Create a virtual machine config spec with 1 SCSI adapter.
  	virtualMachineConfigSpec := types.VirtualMachineConfigSpec{
  		Name: vmName,
  		Files: &types.VirtualMachineFileInfo{
  			VmPathName: "[" + vmdisk.volumeOptions.Datastore + "]",
  		},
  		NumCPUs:  1,
  		MemoryMB: 4,
  		DeviceChange: []types.BaseVirtualDeviceConfigSpec{
  			&types.VirtualDeviceConfigSpec{
  				Operation: types.VirtualDeviceConfigSpecOperationAdd,
  				Device: &types.ParaVirtualSCSIController{
  					VirtualSCSIController: types.VirtualSCSIController{
  						SharedBus: types.VirtualSCSISharingNoSharing,
  						VirtualController: types.VirtualController{
  							BusNumber: 0,
  							VirtualDevice: types.VirtualDevice{
  								Key: 1000,
  							},
  						},
  					},
  				},
  			},
  		},
  	}
  
  	task, err := vmdisk.vmOptions.VMFolder.CreateVM(ctx, virtualMachineConfigSpec, vmdisk.vmOptions.VMResourcePool, nil)
  	if err != nil {
  		klog.Errorf("Failed to create VM. err: %+v", err)
  		return nil, err
  	}
  
  	dummyVMTaskInfo, err := task.WaitForResult(ctx, nil)
  	if err != nil {
  		klog.Errorf("Error occurred while waiting for create VM task result. err: %+v", err)
  		return nil, err
  	}
  
  	vmRef := dummyVMTaskInfo.Result.(object.Reference)
  	dummyVM := object.NewVirtualMachine(datacenter.Client(), vmRef.Reference())
  	return &vclib.VirtualMachine{VirtualMachine: dummyVM, Datacenter: datacenter}, nil
  }
docs: // CreateDummyVM create a Dummy VM at specified location with given name.