vSphere 8.0 release date: 11 October 2022 | SDK build on developer.vmware.com Initial Availability became GA 8 November 2022 | Last document update: 9 November 2022 Check back for additions and updates to these release notes, marked New. |
Before 7.0 U3, the vSphere Management SDK was not compatible with Java 11. For advice on Java 11, see Compatibility Notices below.
Overview
The vSphere Management SDK contains the following packaged interfaces. All are Web services, in the sense that they communicate through a network endpoint in XML as defined by their standard Web Services Description Language (WSDL) definitions.
- ESX Agent Manager (EAM) SDK
- Storage Management Service (SMS) SDK
- Storage Policy Based Management (SPBM) SDK.
- Single Sign On (SSO) Client SDK
- vSphere Web Services SDK
- Virtual Storage Lifecycle Management (VSLM) SDK
The vSphere Web Services SDK is by far the most popular. It supports the development of applications that call the vSphere API to manage virtual machines and virtual infrastructure components such as data centers, datastores, resource pools, and networks. Refer to the vSphere Web Services API Reference for managed objects, methods, and data structures in this release.
EAM offers support for vSphere solutions such as High Availability, NSX virtual networks, and IO Filters. For details, refer to the vSphere Solutions Manager, vServices, and ESX Agent Manager Release Notes.
SMS provides access to storage capabilities, associations, and space usage. SMS has its own in-memory database manager (the SMS cache) that periodically synchronizes data with the storage information provider database.
SPBM allows administrators to use and define storage profiles that help automate storage provisioning for virtual machines. Client applications can manipulate storage policies with the API, as well as with the vSphere Client.
SSO provides a security token service for single sign-on authentication. Client applications call the API to obtain Security Assertion Markup Language (SAML) tokens for logging into vCenter Server or vCloud Suite. For multifactor authentication, programs must use the vSphere Automation SDK.
Introduced in vSphere 7.0, VSLM is a set of APIs to manage First Class Disk (FCD), also called Improved Virtual Disk. FCD is storage that exists independently of a virtual machine.
Distribution Kit
All the above SDK subsets are available on the developer.vmware.com website as part of the vSphere Management SDK, a collection of related APIs. When you extract the contents of the ZIP archive, SDK subsets appear in these subdirectories:
VMware-vSphere-SDK-8.0.0-buildNumber.zip SDK eam sms-sdk spbm ssoclient vsphere-ws vslm
These vSphere Management SDKs provide documentation, libraries, and code examples needed for developers to build solutions integrated with the industry's leading virtualization platform.
Compatibility Notices
.NET SDK discontinued. As announced in August 2020 (KB 80144) vSphere Automation SDK for .NET was deprecated. The vSphere Management SDK for .NET was also deprecated in vSphere 7.0 U3d (P04) as outlined in KB 87965. C# sample programs in the SDK have been deleted. Programmers can still write Java programs for vSphere Web Services, or generate .NET bindings using WSDLs published in the SDK and using .NET libraries.
Java 11. The SDK stubs and samples are compiled with JDK 11, but are not backward compatible with Java 8. A recent Java version, JDK 11, discontinued libraries supporting SOAP and JAX-WS. Consequently VMware provides the necessary JAX-WS libraries to run with JDK 11. When you build and run sample code with JDK 11, and for your own code, JAX-WS and JAXB libraries are present in the SDK lib
folder.
Null pointer exception. Running vSphere Management SDK with Java 11 can result in NullPointerException when com.vmware.vim25#VimService() calls the javax.xml.ws.Service constructor. This is due to a known bug in old versions of jaxws-ri
. The fix is to run version 3.0.1 or later of jaxws-ri
. See KB 89346 for details.
To compile the sample programs, run build.bat -w
on Windows or build.sh -w
on Linux. To run the sample programs, type run.bat
or run.sh
with appropriate arguments.
New in this Release
New 8.0 features, further described in the Web Services API reference:
- New Methods in Managed Objects
- Methods QueryCompatibleVmnicsFromHosts and QuerySupportedNetworkOffloadSpec were added to DistributedVirtualSwitchManager to check compatible vmNICs and network offload specifications.
- Method RetrieveVendorDeviceGroupInfo was added to HostAssignableHardwareManager to return a list of types in the vendor device group.
- Methods QueryMaxQueueDepth and SetMaxQueueDepth were added to HostDatastoreSystem to get and change queue depth for the specified NFS datastore.
- New Data Objects
- ClusterClusterInitialPlacementAction describes VM location in a cluster. ClusterPreemptibleVmPairInfo and ClusterPreemptibleVmPairSpec contain the monitored and preemptible VM pair in an HA cluster.
- DVSManagerPhysicalNicsList stores valid physical NICs for an ESXi host, and DistributedVirtualSwitchNetworkOffloadSpec specifies network offload for a DVS.
- DpuStatusInfo and DpuStatusInfoOperationalInfo are for operational and health status of a data processing unit (DPU), also known as a Smart NIC.
- HostDvxClass gives information about device virtualization extensions (DVX) class for direct hardware access.
- HostFru represents a hardware component that is a field replaceable unit (FRU) in an ESXi host.
- Security related objects HostProxySwitchEnsInfo (enhanced network stack), HostSgxRegistrationInfo (software guard extensions), HostTpmSignerEventDetails, and HostTpmVersionEventDetails (trusted platform module) were added.
- VMwareDvsDpuCapability and VirtualMachineDvxClassInfo involve DPU and DVX, previously mentioned.
- VirtualDeviceDeviceGroupInfo, VirtualMachineVendorDeviceGroupInfo, VirtualMachineVendorDeviceGroupInfoComponentDeviceInfo, VirtualMachineVirtualDeviceGroups, VirtualMachineVirtualDeviceSwap, and VirtualMachineVirtualDeviceSwapDeviceSwapInfo are for managing device groups in virtual machines.
- VirtualMachineVirtualNuma and VirtualMachineVirtualNumaInfo describe non-uniform memory access (NUMA) for a virtual machine.
- VirtualPCIPassthroughDvxBackingInfo and VirtualPCIPassthroughDvxBackingOption describe device virtualization extensions (DVX), previously mentioned.
- New Enumerated Types
- HostDVSConfigSpecSwitchMode defines the distributed virtual switch mode.
- HostMountInfoMountFailedReason enumerates causes for NFS mounts failing.
- HostSgxRegistrationInfoRegistrationStatus and HostSgxRegistrationInfoRegistrationType relate to SGX, previously mentioned.
- VirtualHardwareMotherboardLayout enumerates motherboard layout of the VM.
- VirtualMachineCloneSpecTpmProvisionPolicy says whether to copy or replace vTPM in a cloned VM.
- VirtualMachineVirtualDeviceSwapDeviceSwapStatus shows status of a swap device.
- vslmDiskInfoFlag represents various information about first class disk (FCD).
- Namespace support for Kubernetes
- In vSphere 7.0 U3, the “namespace” property was added to Folder and ResourcePool.
- Namespace is a resource that divides up cluster resources so that administrators can assign Kubernetes environments to specific development teams.
- The Web Services SDK includes new JAX-WS and JAXB libraries so you don't need to download them separately.
- Sticky bit for ESXi configuration files has been replaced by use of
esxcli
configuration settings. - HTTP PUT access to host files was discontinued for security reasons. GET access is still allowed.
Deprecated Features
- vSphere Automation identity providers surpass SSO interfaces
SSO interfaces support neither multifactor authentication, nor third party providers such as Active Directory Federation Services (ADFS), OAuth2, Okta, or OpenID Connect. Programmers can use the vSphere Automation APIs to support these authorization and authentication services. SAML tokens are valid for both APIs. Applications can either use
LoginByToken
with SOAP-based SSO, or use the vSphere Automation API token service to exchange a JSON Web Token (JWT) for a SAML token. - Use of TLS in old versions of Java
Java programmers should use Java 11 or possibly later versions. JDK 1.7 should not be used in a production environment because it does not support TLS 1.2. Stubs in the SDK were compiled with JDK 11 and do not need rebuilding.
- See vSphere API Reference for deprecated interfaces
Several properties and types defined for the API were deprecated in vSphere API 7.0. You can see all the objects and types with indicators showing when they were added or deprecated by clicking “API Versions Reference” in the VMware vSphere API Reference manual.
Known Issues
Currently known issues are as follows. For older issues, see the vSphere 7 Release Notes.
- Client received SOAP fault from server: Signature is invalid.
When running Web Services sample code with JDK 8 build 232 and later, the Java client receives an exception in the main thread saying “ws.fault.Server SOAPFaultException: Client received SOAP Fault from server: Signature is invalid.” See KB 81799 for workarounds.
- HBA Rescan might require delay before proceeding.
As larger storage devices are connected to the host bus adapter (HBA) in recent releases, HBA rescan could take longer to complete. As a workaround in these cases, developers can add a
sleep()
call before issuing subsequent I/O commands. - PropertyCollector notifications more sensitive in 6.7.
Programs should not expect
WaitForUpdatesEx
to provide notification of server-side changes. This method is intended as a data synchronization mechanism. In some situations, server-side logic can report change sets that include unchanged properties. Client programs can safely apply values in these change sets, but some items might not represent changes to previous values. Between vSphere 6.5 and 6.7 a change threshold was made more sensitive, which could result in more frequent notifications fromWaitForUpdatesEx
. - Java GetVMFiles code mishandles special characters in VM names.
Under JAX-WS samples, the
GetVMFiles.java
program does not properly handle special characters of VM names passed in parameters. - SMS QueryService exceptions
You might see SMS
QueryService
exceptions in the SMS log, such as “com.vmware.vim.sms.fault.QsQueryException” and “com.vmware.vim.query.client.exception.ValidationException: Got status code: 400.” The resolution is to restart vCenter Server's Appliance Management Service from the vSphere Client. - VM is created despite an invalid storage policy.
Using the vSphere API, you can create a VM with a storage policy that is not in compliance with the associated storage capability, even if the subprofile constraint
forceProvision
is set to false. By contrast, the vSphere Client refuses to create the VM if the storage policy is not compliant. - Do not use VirtualMachine.Relocate to change VM storage profile.
The
VirtualMachine.Relocate
method specifies a new storage profile for a virtual disk or VM without specifying either a new host or datastore. This is invalid to vCenter Server, which does not change the storage profile. UseVirtualMachine.Reconfigure
to assign a new storage profile to a virtual disk /or VM. - Description of VASA alarms and system events is "Unknown Event ID".
The vSphere Client can display VASA system events for the inventory root folder or the datastore associated with a storage device, but vCenter Server uses string "Unknown Event ID" for the event description instead of the message that the VASA provider specified.
Known Issues in VSLM
VSLM interfaces control First Class Disk (FCD) and perform lifecycle operations for persistent volumes outside the lifecycle of a VM or Tanzu pod. Cloud Native Storage (CNS)is an important use case for FCD. These are some limitations of the current product:
- vCenter Server does not serialize operations on an FCD, so applications cannot perform simultaneous operations on the same FCD. Multithreading of long running operations such as clone, relocate, delete, retrieve, and so on can have unpredictable results. To avoid problems, perform complete operations in sequential order on a single FCD.
- FCD is not a managed object and has no global lock mechanism protecting multiple writes to one FCD. As a result, VSLM does not support multiple vCenter instances managing one FCD. If you require multiple vCenter instances with FCDs, you have two options: (1) multiple vCenter Server instances managing different datastores, or (2) multiple vCenter Server instances not operating on the same FCD.
- With FCD attached to a VM, the vCenter inventory is not cache consistent with the FCD global catalog. In other words, if your application connects to the API endpoint for VSLM, and also to another API endpoint such as
vpxd
orhostd
, timing issues can result in database consistency issues. After writes, VMware recommends including a 30 second delay for synchronization of databases. - When a system error causes a long queue into the FCD global catalog, FCD and Cloud Native Storage (CNS) may become unresponsive.
Known Issues in Documentation
- Revised documentation for tracking Task completion.
The 7.0 Web Services SDK Programming Guide contained revised sections about PropertyCollector and polling for Task status. Furthermore, although VMware does not officially support Python bindings, the GitHub project for
pyvmomi
contains the relatively shorttask.py
program that can help developers understand Task tracking algorithms. VirtualMachine.CloneVM_Task
method failure.The VMware vSphere API Reference does not document a limitation with regard to
VirtualMachineCloneSpec
:When
VirtualMachine.CloneVM_Task
fails, it produces the following error: “The specified delta disk format 'nativeFormat' is not supported.” The vCenter Server returns the error when you:
(1) Create a VAAI NAS native linked clone VM that usesnativeFormat
for the delta disk formatVirtualMachineCloneSpec.location.disk.diskBackingInfo.deltaDiskFormat
, or
(2) Create a second-level clone from the first clone, and the disk for the second-level clone is on a different datastore. If you do not specifyseSparseFormat
orredoLogFormat
for the second-level clone delta disk format, the clone operation fails.If you are using a VM clone with a native delta disk format, you must specify either
seSparseFormat
orredoLogFormat
for any clones that you create from the original native clone when the second-level clone is on a different datastore.- The
fault
parameter is required for theSetTaskState
method.The VMware vSphere API Reference does not document this limitation with regard to the
SetTaskState
method:If you specify an error state when you call the
SetTaskState
method, you must also specify thefault
parameter in the calling sequence. - The
seSparse
virtual disk type is intended for internal use only.The documentation does not specify internal use only for
VirtualDiskType.seSparse
.
Resolved Issues
- Linux virtual machines could not detect vNUMA topology. The vSphere API was extended to configure and query vNUMA enablement for HotAdd.
- Various USB issues fixed. USB 3.2 Gen 2x2 devices work and report the corrected speed when connected to USB 3.2 Gen 2x2 root or external hub. USB 3.2 device passthrough to virtual machines also works.
- Guest customization custom script enhancements. Increased the size limit to 64KB in software, which also applies to vCD and the API.