# Managed Object - PbmPlacementSolver(pbm.placement.PlacementSolver)

Property of
  PbmServiceInstanceContent
See also
  PbmCapabilityProfileCreateSpec, PbmPlacementCompatibilityResult, PbmPlacementHub, PbmPlacementRequirement, PbmProfileId, PbmServerObjectRef

## Managed Object Description

The PbmPlacementSolver data object provides methods to identify placement hubs that support the capabilities to store virtual machine files. A placement hub is a datastore or a storage pod. A vSphere API `StoragePod` corresponds to Storage DRS in the vSphere Web Client.

Properties

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

Methods

Methods defined in this Managed Object
PbmCheckCompatibility, PbmCheckCompatibilityWithSpec, PbmCheckRequirements, PbmQueryMatchingHub, PbmQueryMatchingHubWithSpec

# PbmCheckCompatibility(checkCompatibility)

Deprecated. As of vSphere 2016, use ServerObjectRef, Requirement[]) instead in order to retrieve compatibility status on both compute and storage location.

Performs placement compatibility checking based on a storage requirement profile. If compatibility checking for a hub does not produce any errors, the hub is considered a viable candidate for virtual machine file storage. If this method is invoked for VVolDefaultProfile profile, then all the VVOL containers are returned as matching.

Required Privileges
  StorageProfile.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the PbmPlacementSolver used to make the method call.
hubsToSearch* | PbmPlacementHub[] | Candidate list of hubs, either datastores or storage pods or a mix. If this parameter is not specified, the Server uses all of the datastores and storage pods for placement compatibility checking.
profile | PbmProfileId | Storage requirement profile.

*Need not be set

Return Value

Type | Description
--- | ---
PbmPlacementCompatibilityResult[] | Array of compatibility result objects. The results array contains one entry for each entry in the `hubsToSearch` list. If a hubs list is not specified, the results array contains one entry for each datastore and storage pod in your vSphere environment. Any errors are described in the results array. If there is an invalid argument error, the compatibility results will contain `InvalidArgument` faults indicating that the profile does not exist or that it does not match the requirement type. If there are errors or warnings during compatibility checking, the compatibility results will contain faults derived from PbmCompatibilityCheckFault. If this method is invoked for VVolDefaultProfile then the compatibility results will contain faults derived from PbmCompatibilityCheckFault for non-vvol datastores.

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

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckCompatibility" type="pbm:PbmCheckCompatibilityRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckCompatibilityResponse"> <complexType> <sequence> <element name="returnval" type="pbm:PbmPlacementCompatibilityResult" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# PbmCheckCompatibilityWithSpec(checkCompatibilityWithSpec)

Deprecated. As of vSphere 2016, use ServerObjectRef, Requirement[]) instead in order to retrieve compatibility status for both compute and storage location.

Performs placement compatibility checking based on a storage profile specification. If compatibility checking for a hub does not produce any errors, the hub is considered a viable candidate for virtual machine file storage.

Required Privileges
  StorageProfile.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the PbmPlacementSolver used to make the method call.
hubsToSearch* | PbmPlacementHub[] | Candidate list of hubs, either datastores or storage pods or a mix. If this parameter is not specified, the Server uses all of the datastores and storage pods for placement compatibility checking.
profileSpec | PbmCapabilityProfileCreateSpec | Specification for a capability based profile.

*Need not be set

Return Value

Type | Description
--- | ---
PbmPlacementCompatibilityResult[] | Array of compatibility result objects. The results array contains one entry for each entry in the `hubsToSearch` list. If a hubs list is not specified, the results array contains one entry for each datastore and storage pod in your vSphere environment. Any errors are described in the results array. If there is an invalid argument error, the compatibility results will contain `InvalidArgument` faults indicating that the profile does not exist or that it does not match the requirement type. If there are errors or warnings during compatibility checking, the compatibility results will contain faults derived from PbmCompatibilityCheckFault.

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

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckCompatibilityWithSpec" type="pbm:PbmCheckCompatibilityWithSpecRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckCompatibilityWithSpecResponse"> <complexType> <sequence> <element name="returnval" type="pbm:PbmPlacementCompatibilityResult" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# PbmCheckRequirements(checkRequirements)

Performs placement compatibility checking for the specified object to be placed based on its specified set of requirements. If compatibility checking for a hub does not produce any errors, the hub is considered a viable candidate for virtual machine storage.

Required Privileges
  StorageProfile.View
Since
  6.5

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the PbmPlacementSolver used to make the method call.
hubsToSearch* | PbmPlacementHub[] | Candidate list of hubs, either datastores or storage pods or a mix. If this parameter is not specified, the Server uses all of the datastores and storage pods for placement compatibility checking.
placementSubjectRef* | PbmServerObjectRef | reference to the object being placed. Should be null when a new object is being provisioned. Should be specified when placement compatibility is being checked for an existing object. Supported objects are virtualMachine, virtualMachineAndDisks, virtualDiskId, virtualDiskUUID
placementSubjectRequirement* | PbmPlacementRequirement[] | Requirements including the policy requirements, compute requirements and capacity requirements. It is invalid to specify no requirements. It is also invalid to specify duplicate requirements or multiple conflicting requirements such as specifying both PbmPlacementCapabilityConstraintsRequirement and PbmPlacementCapabilityProfileRequirement.

*Need not be set

Return Value

Type | Description
--- | ---
PbmPlacementCompatibilityResult[] | Array of compatibility result objects. The results array contains one entry for each entry in the `hubsToSearch` list. If hubs list is not specified, the results array contains one entry for each datastore and storage pod in your vSphere environment. Any errors are returned in the results array. If there is an invalid argument error, the compatibility results will contain `InvalidArgument` faults indicating that the profile does not exist or that it does not match the requirement type. If there are errors or warnings during compatibility checking, the compatibility results will contain faults derived from PbmCompatibilityCheckFault.

Faults

Type | Description
--- | ---
InvalidArgument | Thrown if `placementSubjectRequirement` is null or empty or if there are duplicate or multiple conflicting requirements such as PbmPlacementCapabilityConstraintsRequirement and PbmPlacementCapabilityProfileRequirement both being specified.
PbmFault | Thrown if there is an internal server error.
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

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckRequirements" type="pbm:PbmCheckRequirementsRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmCheckRequirementsResponse"> <complexType> <sequence> <element name="returnval" type="pbm:PbmPlacementCompatibilityResult" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# PbmQueryMatchingHub(queryMatchingHub)

Deprecated. As of vSphere 2016, use ServerObjectRef, Requirement[]) instead in order to retrieve both compatible compute and storage location.

Finds matching placement hubs for the specified requirements profile. This method returns only those hubs that match the profile. If this method is invoked for VVolDefaultProfile profile, then all the VVOL containers are returned as matching.

Required Privileges
  StorageProfile.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the PbmPlacementSolver used to make the method call.
hubsToSearch* | PbmPlacementHub[] | Candidate list of hubs, either datastores or storage pods or a mix. If this parameter is not specified, the Server uses all of the datastores and storage pods.
profile | PbmProfileId | Storage requirement profile.

*Need not be set

Return Value

Type | Description
--- | ---
PbmPlacementHub[] | Subset of the `hubsToSearch` list that satisfies the profile requirements. A storage pod is returned if and only if all its member datastores satisfy the profile requirements, whether the hubs list contains any of the member datastores or not. If a datastore and its storage pod are in the hubs list, and both satisfy the requirements, both are returned.

Faults

Type | Description
--- | ---
PbmFault | Thrown if there is an internal server error.
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

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmQueryMatchingHub" type="pbm:PbmQueryMatchingHubRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmQueryMatchingHubResponse"> <complexType> <sequence> <element name="returnval" type="pbm:PbmPlacementHub" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

# PbmQueryMatchingHubWithSpec(queryMatchingHubWithSpec)

Deprecated. As of vSphere 2016, use ServerObjectRef, Requirement[]) instead in order to retrieve both compatible compute and storage location.

Finds matching placement hubs based on a profile creation specification. This method returns only those hubs that match the specification.

Required Privileges
  StorageProfile.View

Parameters

Name | Type | Description
--- | --- | ---
_this | ManagedObjectReference | A reference to the PbmPlacementSolver used to make the method call.
hubsToSearch* | PbmPlacementHub[] | Candidate list of hubs, either datastores or storage pods or a mix. If this parameter is not specified, the Server uses all of the datastores and storage pods for placement compatibility checking.
createSpec | PbmCapabilityProfileCreateSpec | Storage profile creation specification.

*Need not be set

Return Value

Type | Description
--- | ---
PbmPlacementHub[] | Subset of the `hubsToSearch` list that satisfies the profile requirements. A storage pod is returned if and only if all its member datastores satisfy the profile requirements, whether the hubs list contains any of the member datastores or not. If a datastore and its storage pod are in the hubs list, and both satisfy the requirements, both are returned.

Faults

Type | Description
--- | ---
PbmFault | Thrown if there is an internal server error.
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

Show WSDL type definition
<element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmQueryMatchingHubWithSpec" type="pbm:PbmQueryMatchingHubWithSpecRequestType"/> <element xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pbm="urn:pbm" name="PbmQueryMatchingHubWithSpecResponse"> <complexType> <sequence> <element name="returnval" type="pbm:PbmPlacementHub" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>