# Managed Object - VirtualMachineProvisioningChecker(vim.vm.check.ProvisioningChecker)

Property of
  ServiceContent
See also
  CheckResult, Folder, HostSystem, ResourcePool, VirtualMachine, VirtualMachineCloneSpec, VirtualMachineInstantCloneSpec, VirtualMachinePowerState, VirtualMachineRelocateSpec
Since
  vSphere API 4.0

## Managed Object Description

A singleton managed object that can answer questions about the feasibility of certain provisioning operations.

Properties

Name | Type | Description
--- | --- | ---
None

Methods

Methods defined in this Managed Object
CheckClone_Task, CheckInstantClone_Task, CheckMigrate_Task, CheckRelocate_Task, QueryVMotionCompatibilityEx_Task

# CheckClone_Task(checkClone)

Tests the feasibility of a proposed CloneVM_Task operation.

Required Privileges
  System.View
Since
  vSphere API 6.7

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VirtualMachineProvisioningChecker used to make the method call.
vm | ManagedObjectReference to a VirtualMachine | The virtual machine we propose to clone.
folder | ManagedObjectReference to a Folder | The location of the new virtual machine.
name | xsd:string | The name of the new virtual machine.
spec | VirtualMachineCloneSpec | Specifies how to clone the virtual machine. In cases where DRS would automatically select a host, all potential hosts are tested against.
testType* | xsd:string[] | The set of tests to run. If this argument is not set, all tests will be run. See CheckTestType for possible values.

*Need not be set

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
InvalidArgument | in the following cases: the target host and target pool are not associated with the same compute resource the target pool represents a cluster without DRS enabled, and the host is not specified Datastore in a diskLocator entry is not specified the specified device ID cannot be found in the virtual machine's current configuration the object specified in relocate cannot be found the target pool is not specified while checking feasibility of cloning to a different datacenter or a different vCenter service the datastore is not specified when testType parameter includes datastore tests while checking feasibility of cloning to a different datacenter or a different vCenter service
InvalidState | Thrown if the operation cannot be performed because of the virtual machine's current state. For example, if the virtual machine configuration information is not available.
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# CheckInstantClone_Task(checkInstantClone)

Tests the feasibility of a proposed InstantClone_Task operation.

Required Privileges
  System.View
Since
  vSphere API 6.7

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VirtualMachineProvisioningChecker used to make the method call.
vm | ManagedObjectReference to a VirtualMachine | The virtual machine we propose to instant clone.
spec | VirtualMachineInstantCloneSpec | Specifies how to instant clone the virtual machine.
testType* | xsd:string[] | The set of tests to run. If this argument is not set, all tests will be run. See CheckTestType for possible values.

*Need not be set

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
InvalidArgument | in the following cases: The destination host does not support Instant Clone. The source and destination host are not the same. The relocate spec in the Instant Clone spec has Datastore set. The relocate spec in the Instant Clone spec has host set. The Instant clone spec does not have name set. The source VM is a template. The source VM is not powered on. The source VM has PMEM devices/disks configured.
InvalidState | Thrown if the operation cannot be performed because of the virtual machine's current state. For example, if the virtual machine configuration information is not available.
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# CheckMigrate_Task(checkMigrate)

Tests the feasibility of a proposed MigrateVM_Task operation.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VirtualMachineProvisioningChecker used to make the method call.
vm | ManagedObjectReference to a VirtualMachine | The virtual machine we propose to migrate.
host* | ManagedObjectReference to a HostSystem | The target host on which the virtual machines will run. The host parameter may be left unset if the compute resource associated with the target pool represents a stand-alone host or a DRS-enabled cluster. In the former case the stand-alone host is used as the target host. In the latter case, each connected host in the cluster that is not in maintenance mode is tested as a target host. If the virtual machine is a template then either this parameter or the pool parameter must be set.
pool* | ManagedObjectReference to a ResourcePool | The target resource pool for the virtual machines. If the pool parameter is left unset, the target pool for each particular virtual machine's migration will be that virtual machine's current pool. If the virtual machine is a template then either this parameter or the host parameter must be set. The pool parameter must be set for testing the feasibility of migration to a different datacenter or different vCenter service.
state* | VirtualMachinePowerState | The power state that the virtual machines must have. If this argument is not set, each virtual machine is evaluated according to its current power state.
testType* | xsd:string[] | The set of tests to run. If this argument is not set, all tests will be run. See CheckTestType for possible values.

*Need not be set

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
InvalidArgument | Thrown if the target host(s) and target pool for a migration are not associated with the same compute resource, or if the host parameter is left unset when the target pool is associated with a non-DRS cluster.
InvalidPowerState | Thrown if the state argument is set and at least one of the specified virtual machines is not in that power state.
InvalidState |
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# CheckRelocate_Task(checkRelocate)

Tests the feasibility of a proposed RelocateVM_Task operation.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VirtualMachineProvisioningChecker used to make the method call.
vm | ManagedObjectReference to a VirtualMachine | The virtual machine we propose to relocate.
spec | VirtualMachineRelocateSpec | The specification of where to relocate the virtual machine. In cases where DRS would automatically select a host, all potential hosts are tested against. The host parameter in the spec may be left unset for checking feasibility of relocation to a different datacenter or different vCenter service, if the compute resource associated with the target pool represents a stand-alone host, the host is tested against, otherwise each connected host in the cluster that is not in maintenance mode represented by the target pool is tested as a target host.
testType* | xsd:string[] | The set of tests to run. If this argument is not set, all tests will be run. See CheckTestType for possible values.

*Need not be set

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
InvalidArgument | in the following cases: the target host and target pool are not associated with the same compute resource the target pool represents a cluster without DRS enabled, and the host is not specified Datastore in a diskLocator entry is not specified the specified device ID cannot be found in the virtual machine's current configuration the object specified in relocate cannot be found the target pool is not specified while checking feasibility of relocation to a different datacenter or different vCenter service the datastore is not specified when testType parameter includes datastore tests while checking feasibility of relocation to a different datacenter or a different vCenter service
InvalidState | Thrown if the operation cannot be performed because of the host or virtual machine's current state. For example, if the host is in maintenance mode, or if the virtual machine's configuration information is not available.
NotSupported | Thrown if the virtual machine is marked as a template.
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None

# QueryVMotionCompatibilityEx_Task(queryVMotionCompatibilityEx)

Investigates the general VMotion compatibility of a set of virtual machines with a set of hosts. The virtual machine may be in any power state. Hosts may be in any connection state and also may be in maintenance mode.

Required Privileges
  System.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the VirtualMachineProvisioningChecker used to make the method call.
vm | ManagedObjectReference[] to a VirtualMachine[] | The set of virtual machines to analyze for compatibility. All virtual machines are assumed to be powered-on for the purposes of this operation.
host | ManagedObjectReference[] to a HostSystem[] | The set of hosts to analyze for compatibility. All hosts are assumed to be connected and not in maintenence mode for the purposes of this operation.

Return Value

Type | Description
--- | ---
ManagedObjectReference to a Task |

Faults

Type | Description
--- | ---
RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Events

Type
None