VMware Infrastructure (VI) SDK 2.5.0 Release Notes


What’s New

This release of the VI SDK 2.5 includes:

Support for ESX Server 3i

This version of the VI SDK supports ESX Server 3i. ESX Server 3i delivers the market-leading hypervisor VMware ESX Server in a unique new form factor: integrated with server hardware. Despite its small footprint, VMware ESX Server 3i is as functional as ESX Server 3.5, but in a simple, fully secure deployment model. Developers targeting ESX Server 3i will find these new features of special interest:

Support for the DMTF SMASH

ESX Server 3i version 3.5 enables server management using the CIM SMASH interface.

  • CIM (Common Information Model) is an industry-standard systems management information model proposed and shepherded by the DMTF (Distributed Management Task Force. CIM enables systems-, network-, application-, and services-management-vendors to exchange information about their systems using a common modeling approach. A CIM object is a model of a managed resource, such as a printer, disk drive, or CPU.
  • SMASH (Systems Management Architecture for Server Hardware) is another DMTF initiative providing a suite of specifications that deliver architectural semantics, industry-standard protocols and profiles to unify the management of the data center.
  • A CIMOM (CIM Object Manager) is software that transfers CIM data between WBEM (Web-Based Enterprise Management) client applications and managed resources.

This release of the VI SDK includes:

  • Java sample code that uses CIM, via the Sun WBEM library. See the Java sample located in SDK\samples\Axis\java\com\vmware\samples\ciminfo\VIWrapper
  • CIM SMASH API Programming Guide

ESX Server 3i includes support for CIM Schema version 2.14 and for SMASH 1.0.0. The specific profiles supported are listed in the table. (* means not fully implemented: See the CIM SMASH API Programming Guide for more information.)

DMTF SMASH Profiles Supported by ESX Server 3i

Specification NameDocument NumberVersion
Base Server Profile DSP1004 1.0.0a
Sensors Profile DSP1009 1.0.0
Record Log Profile DSP1010 1.0.0*
Fan Profile DSP1013 1.0.0
Ethernet Port Profile DSP1014 1.0.0*
Power Supply Profile DSP1015 1.0.0c
CPU Profile DSP1022 1.0.0
Software Inventory Profile DSP1023 1.0.0
System Memory Profile DSP1026 1.0.0f
Power State Management Profile DSP1027 1.0.0
Profile Registration Profile DSP1033 1.0.0
Simple Identity Management Profile DSP1034 1.0.0*
IP Interface Profile DSP1036 1.0.0*
Role Based Authorization Profile DSP1039 1.0.0*

For more information about CIM, SMASH, and other DMTF initiatives, visit the DMTF website.

Note:ESX Server 3.0.x supports SMI-S (Storage Management Initiative-Specification, version 1.0.2), a standard defined by the Storage Networking Industry Association that specifies how to use CIM (Common Information Model) to manage storage products. The CIM SDK provided by VMware for use with ESX Server 3.0.x and storage management is not supported by ESX Server 3.5 or ESX Server 3i.

Durable LUN Names

Durable LUN Names (aka, “Correlatable, Durable LUN Names”). The proprietary algorithm used by ESX Server to create UUID (universally unique identifiers) for LUNs has been augmented with additional information that enables API consumers to materialize storage topology using standard identifiers (“Correlatable and Durable Names”).

The support is for physical, not virtual, LUNs. Developers will find a new property, alternateNames, associated with ScsiLun array using the DurableName type. One durable name will be selected as the “best” (the “best” algorithm as defined by SMI and T10 SPC specifications) and stored in durableName; all other available payloads are recorded in the alternateNames. A new standardInquiry byte array property is used to record the standard inquiry payload. See the VI API Reference 3.1 for more information. [First supported in Beta 1]

Limited Support for SNMP (v1) Hardware-Event Traps.

Traps are sent within 2 minutes of registered events. Traps may be based on periodic scans of the IPMI hardware log (CIM Record Log profile), the values of the sensors as returned by CIM, or the VI API or CIM indications. Detailed health information is not provided. [First supported in Beta 1]

New and Enhanced Object Types and API to Support Server Capabilities

Many of the new features and capabilities of ESX Server and VirtualCenter Server are designed to make managing a virtual infrastructure more robust, more scalable—or simply easier. The VI API has been enhanced to provide access to the new capabilities. In some cases, existing functionality has been enhanced.

See “What’s New in the VI SDK?” (chapter 1 in the Programming Guide) for more information about new managed object types, new properties, and operations. These are just some of the highlights:

  • New Mechanisms for Remote File Management  In addition to the HostDatastoreBrowser available in previous releases, ESX Server 3.5 provides three new mechanisms for managing files:
    • FileManager (Experimental)—The FileManager provides operations for managing files and directories (folders) within a datastore or transfer files between datastores. Operations include: copy, create, delete, and move datastore files.
    • VirtualDiskManager (Experimental)—The VirtualDiskManager provides facilities to manage and manipulate virtual disks on datastores. Operations include: virtual disk creation and deletion; copying or moving virtual disks across datacenters and datastores; extending or shrinking virtual disks, and performing general virtual disk maintenance functions.
    • Web-based (HTTP) File Access—ESX Server 3.5 supports web-based, streaming file-access to ESX Server datastore and selected ESX Server configuration files. Datastore access is available through both VirtualCenter Server and ESX Server systems; configuration files are accessible though ESX Server systems only. Sample code for Java client implementation of this new approach is available in the SDK.
  • HostPatchManager  Enables programmatically scanning and patching an ESX Server using an online patch repository.
  • HostDateTimeSystem  Date and time configuration information has been enhanced to support access to the Network Time Protocol (NTP) and date/time related for an individual ESX Server host. Information about the running status of the NTP daemon and functionality to start and stop the daemon is provided by the HostServiceSystem object.
  • HostSNMPSystem  Provides services to query and configure SNMP on a host.
  • Enhancements to ComputeResource and ClusterComputeResource Managed Object Types  The ComputeResource managed object type includes new configure Distributed Power Management (DPM) options. The ClusterComputeResource managed object type includes new properties that provide an enhanced recommendations (ClusterRecommendation) and a history of recent actions (ActionHistory).
  • Support for CDP (Cisco Discovery Protocol)  The QueryNetworkHint method returns information available through CDP (Cisco Discovery Protocol). If the uplink connects directly to a CDP-aware network device that has CDP broadcast enabled, this property will be set to return the CDP information received on this physical NIC (PNIC).
  • Support for MTU for Virtual Switches  The virtual switch managed object type contains a new property, mtu, that lets you view and modify the maximum transmission unit (MTU, the largest packet-size that an interface can transmit without fragmentation) for network packets.
  • Additional VirtualMachine Configuration Options  The VirtualMachine managed object type now supports a broader set of configuration options, including:
    • bootOptions—Supports delayed boot, to enable forcing a virtual machine into BIOS.
    • disable snapshots—Enables client application to disable snapshots.
    • lock snapshots—Prevents modification to snapshots.
    • NPIV supported—Enables SAN-based NPIV (N-Port ID Virtualization) support.
    • Swap file placement—Enables specifying precise placement of swap file.
    • Virtual MMU support—Boolean that indicates support (true) for Nested Page Table (NPT).
  • Storage VMotion  Applications can make use of the storage vMotion facilities using the existing relocateVM method. Hosts that support VMotion will have more flexible options (can change virtual disk location on running VMs). [VirtualCenter Server only]
  • More Metrics for Host and Virtual Machine Performance.  Disk-latency metrics are now supported on the host and virtual machine. [VirtualCenter Server only]
  • Support for Custom VirtualCenter Plugins  The ExtensionManager managed object is enables third-party applications to register plugins (or, extensions) to VirtualCenter. Extensions are registered as URL links. The VI Agent automatically registers these extensions and modify the GUI accordingly. Applications can query the ExtensionManager object to inspect the list of registered plugins. [VirtualCenter Server only]
  • Support for Custom Server-side Views  VirtualCenter Server 2.5 provides a new managed object type, the ViewManager, that enables definition of custom views for managing objects and properties. Three related new managed objects-InventoryView, ListView, and ContainerView-provide alternative basic patterns for object and property collection. (The ViewManager provides an alternative to the PropertyCollector managed object type.) [VirtualCenter Server only]
  • Support for Remote Automated Power-up (Using New PowerUpFromStandby Operation)—Host systems configured with WakeOnLan can be powered-up from VirtualCenter server. [VirtualCenter Server only]

Deprecated Object Types, Properties, and Methods

Several properties and types available through the VI API 2.0 have been deprecated in VI API 2.5. The table lists the deprecated enumeration types, fault types, managed- and data-object properties, and managed object methods, and identifies the new feature that takes its place.

For example, the QueryMemoryOverhead operation, available through HostSystem managed objects, is deprecated: QueryMemoryOverheadEx should be used for new development. The Java sample (\version\querymemoryoverhead\QueryMemoryOverheadV25) demonstrates using the new operation.

Name of object type or property As of VI API 2.5, use instead...
Enumerated Types
LicenseManagerLicenseKeyUse QueryLicenseSourceAvailability to obtain an array of LicenseAvailabilityInfo data objects (which in turn, comprises LicenseFeatureInfo data objects and status information about number of licenses and availability).
DrsRecommendationReasonCodeUse the RecommendationReasonCode enumerated type.
Fault Types
CpuCompatibilityUnknownUse CpuIncompatible and its subclasses.
IDEDiskNotSupportedUse the DeviceControllerNotSupported fault type.
Data Object Types
ClusterConfigInfoUse the ClusterConfigInfoEx data object type.
ClusterConfigSpecUse the ClusterConfigSpecEx data object type.
ClusterDrsRecommendationUse ClusterRecommendation.
Managed Object Type Properties
ClusterComputeResource.configurationUse ComputeResource.configurationEx
ClusterComputeResource.drsRecommendationUse ClusterComputResource.recommendation
LicenseManager.featureInfoUse QuerySupportedFeatures.
Managed Object Type Methods
ReconfigureCluster_TaskUse ReconfigureComputeResource_Task.
RecommendHostsForVmUse PowerOnMultiVM_Task. RecommendHostsForVm cannot make any recommendations if DRS cannot find the specified host in the cluster. With PowerOnMultiVM_Task, DRS atttempts to migrate virtual machines and power on hosts in standby mode, given the same conditions.
DestroyDatastoreDo not use this method: DestroyDatastore throws ResourceInUse. Datastores are automatically removed when no longer in use, so this method is unnecessary.
CreateClusterUse CreateClusterEx.
DeleteFileUse DeleteDatastoreFile_Task (a method of the new FileManager managed object.
QueryMemoryOverheadUse QueryMemoryOverheadEx.
DestroyNetworkDo not use this method: DestroyNetwork throws ResourceInUse. Networks are automatically removed when no longer in use, so this method is unnecessary.
CreatePerfIntervalUse UpdatePerfInterval. Historical intervals cannot be created.
RemovePerfIntervalUse UpdatePerfInterval. Historical intervals cannot be removed.
Data Object Type Properties
ClusterDasVmConfigInfo.restartPriorityUse restartPriority. If this value is specified using both places, the value in restartPriority has precedence.
ClusterDasVmConfigInfo.powerOffOnIsolationUse isolationResponse. If a value is specified in both powerOffOnIsolation and isolationResponse, the value in isolationResponse takes precedence and the value in powerOffOnIsolation is ignored.
CustomizationWinOptions.deleteAccountsDeleting user accounts as part of a customization routine is not supported as of VI API 2.5: the deleteAccounts property is ignored. To change the administrator password, set the administrator password to blank in the master vm. Sysprep will then be able to change the password to the one specified by the password.
VirtualMachineFlagInfo.runWithDebugInfoUse the new monitorType property (an enumeration comprising string values “debug,” “release,” and “stats”).

New WSDL for VMware Infrastructure Management 3 API

As in past releases of VMware Infrastructure 3, the VMware Infrastructure Management API is exposed as a Web service running on ESX Server and VirtualCenter. With ESX Server 3 version 3.5 and VirtualCenter 2 version 2.5, however, the API is available in two different namespaces—vim25, and vim2. Here’s what you need to know about these two different namespaces:

  • The WSDL (vim.wsdl and vimService.wsdl: vimService.wsdl imports vim.wsdl, at stub-generation time) that defines the API available on an ESX Server and VirtualCenter Server Web service. In this release, the WSDL is available in two different versions, located in the wsdl sub-directory:
    • vim sub-directory contains WSDL files with vim2 namespace, which defines API hosted on Web services running on ESX Server 3.0.x, VirtualCenter Server 2.0.x, ESX Server 3.5, VirtualCenter Server 2.5, and ESX Server 3i.
    • vim25 sub-directory contains WSDL files with vim25 namespace, which defines API hosted on Web services running on ESX Server 3.5, VirtualCenter Server 2.5, and ESX Server 3i.
  • Client applications that have been written using the VI SDK 2.0 WSDL should work, unchanged, with ESX Server 3 version 3.5 and VirtualCenter 2 version 2.5.
  • Only if you want to use new features (of ESX Server 3.5 or VirtualCenter 2.5) in a client application do you need to use the new (vim25) WSDL to generate client-side stubs and then compile the application. However, note that some of the method (operation)-signatures have changed in the new WSDL, and so if you are re-generating and re-compiling existing code, you may raise warnings and errors.

New Sample Applications

This release of the VI SDK includes several new Java sample applications that demonstrate new features of ESX Server 3.5, VirtualCenter 2.5, and ESX Server 3i.

In addition, the Java samples have been improved over previous versions: Some of the code has been refactored; some of the Java packages have been reorganized. Other changes include:

  • The supporting utility applications have been moved to an apputils package.

See the Readme for VI SDK Java Samples (SDK\samples\Axis\java\readme_java.html), available in the updated documentation zipfile, for more information about the new samples.

Last updated 13-Oct-2008