Release date: 2 April 2020 | SDK on code.vmware.com For vSphere 7.0 GA | Last document update: 2 April 2020 Check for additions and updates to these release notes. |
Overview
The vSphere Management SDK contains the following packaged interfaces. All constitute Web services, in the sense that they communicate through a network endpoint in XML as defined by their respective 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 datacenters, datastores, resource pools, and networks. Refer to the vSphere Web Services API Reference for managed objects 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, although usually this is done with the vSphere Client.
Since vSphere 5.1 SSO provides a security token service for authentication. Client applications call the API to obtain Security Assertion Markup Language (SAML) tokens for logging into vCenter Server or vCloud Suite.
VSLM is a new 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 code.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-7.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.
New in This Release
- Virtual Storage Lifecycle Management SDK
Virtual Storage Lifecycle Management (VSLM) is a set of APIs, new in vSphere 6.7 Update 3, to manage First Class Disk (FCD). The downloadable vSphere Management SDK includes VSLM WSDL, generated bindings, sample programs, and an API reference manual for VSLM, all in a folder parallel with SMS, SPBM, and vSphere Web Services. (See Distribution Kit)
- Online vSphere Web Services API Reference
The vSphere Management SDK contains the 7.0 vSphere Web Services API Reference, also online at code.vmware.com. It includes summaries of types added or changed for this release, and columns for interfaces supported in previous releases. Release 6.8.7 was for VMware Cloud (VMC) release M7. Release 6.9.1 was for VMC release M8. New features, changes, and improvements are summarized below.
- New Managed Objects
SiteInfoManager was added to control external site-related capabilities.
HostAssignableHardwareManager was added to manage assignable hardware state of the ESXi host. - Enhanced Capabilities for Managed Objects
HostStorageSystem can create and remove NVME over RDMA adapters and manage the NVME controller.
CryptoManagerKmip can handle the KMS cluster and check if an active KMS exists in the cluster.
CryptoManagerHost can disable encryption on a host, if the host was in crypto safe mode.
HostDatastoreSystem can enable and disable VMDK support.
ClusterComputeResource can set the encryption mode of a cluster.
VcenterVStorageObjectManager can update the crypto state on a virtual storage object (FCD).
HostSystem can retrieve information on free EPC memory of a host. - Namespace support for Kubernetes
The new “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.
Deprecated Features
- vSphere Automation identity providers surpass SSO interfaces
The SSO interfaces are somewhat outmoded now that identity providers support Active Directory Federation Services, OAuth2, and OpenID Connect. Programmers can now use the vSphere Automation APIs for better support of these new authorization and authentication services.
- Advice about old versions of Java
Java programmers should use Oracle JDK 1.8 or OpenJDK 1.8 with this release. JDK 1.7 may be used for development, but it should not be used in a production environment because it does not support TLS 1.2. Stubs in the SDK were compiled with 1.7 but do not need rebuilding as the Developer Setup Guide formerly recommended. JDK 1.8 is backward compatible so the stubs continue to work.
- 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 6.7 Release Notes.
- PropertyCollector is not a notification mechanism.
Programs cannot depend on GetUpdates for notification. It is merely a data synchronization mechanism.
- Java GetVMFiles code mishandles special characters in VM names.
Under JAXWS samples, the
GetVMFiles.java
program does not properly handle special characters in VM names passed as parameter. - 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.
Documentation Issues
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
- Setup Guide recommended the wrong Java version.
The 6.7 vSphere Web Services SDK Setup Guide stated that JDK 1.7 was the recommended version of Java. The correct version is JDK 1.8 for production installations. Lacking TLS 1.2 support, JDK 1.7 is suitable only for development installations.
- Setup Guide gave incorrect advice about rebuilding sample code.
The 6.7 vSphere Web Services SDK Setup Guide advised users to recompile the sample programs and stub files in the SDK when running a version of Java other than 1.7. That advice was incorrect. The SDK files were compiled with JDK 1.7, but they are fully compatible with Java 1.8. Advice was updated for the 7.0 Setup Guide.