vSphere SDK for Perl 5.5 Update 2 Release Notes

Released 9 Sept 2014

Build 2043780 is the 5.5 Update 2 release of the vSphere SDK for Perl.

vSphere SDK for Perl 5.5 Update 2

Welcome to the vSphere SDK for Perl 5.5 Update 2 release.

The vSphere SDK for Perl provides an easy-to-use Perl scripting interface to the vSphere Web Services API.

This document contains the following information:

See the vSphere Command-Line Interface Release Notes for information about vSphere CLI issues.

About the vSphere SDK for Perl

The vSphere SDK for Perl is a client-side Perl framework that provides an easy-to-use scripting interface to the vSphere API. Administrators and developers who are familiar with Perl can use the vSphere SDK for Perl to automate a wide variety of administrative, provisioning, and monitoring tasks in the vSphere environment. The vSphere SDK for Perl includes ready-to-use utility applications, which you can immediately put to use in your virtual datacenter.

The vSphere SDK for Perl installation includes the WS-Management Perl Library, which allows you to write scripts that retrieve CIM data from the ESX host using CIMOM, a service that provides standard CIM management functions over a WBEM (Web-Based Enterprise Management). The installation also includes the vSphere CLI command set.

You can use the SDK to manage ESX/ESXi 4.0, ESX/ESXi 4.1, ESXi 5.0, vCenter Server 4.0, vCenter Server 4.1, and vCenter Server 5.0.

What’s New in vSphere SDK for Perl 5.5 Update 2?

This release fixes the OpenSSL vulnerability described in Open SSL Security Advisory CVE-2014-0224. This release includes OpenSSL 0.9.8za and ActivePerl 5.14.4.1405 to address the issue.

This release includes support for Windows Server 2012

What’s New in vSphere SDK for Perl 5.5?

The supported platforms changed in this release. See Supported Platforms.  

Installing vSphere SDK for Perl

The SDK for Perl Linux installer behaves differently for RHEL and for other Linux distributions.

Installing vSphere SDK for Perl on RHEL

On RHEL, the vSphere SDK for Perl installer prompts you whether you want to install required Perl modules from the installation package or from CPAN. You can install from the package if you do not have Internet access.

  1. Uninstall any existing versions of vSphere SDK for Perl by running <install_dir>/vmware-uninstall-vSphere-CLI.pl. The default installation directory is /usr/bin.
  2. Delete any existing versions of: the SDK for Perl installation
     rm -rf <install_dir>/vmware-vsphere-cli-distrib
  3. Download and untar vSphere SDK for Perl 5.5 Update 2.
  4. Install prerequiste software from your RHEL CD.
    • RHEL 6.3 32 bit:
      yum install e2fsprogs-devel libuuid-devel
      yum install perl-XML-LibXML
    • RHEL 6.3 64 bit:
      yum install e2fsprogs-devel libuuid-devel
      yum install glibc.i686
      yum install perl-XML-LibXML
  5. If you are in an environment without Internet access, choose Yes to install the missing Perl modules from the vCLI package when prompted.

The vSphere SDK for Perl Linux installer stops installation if required modules cannot be found on your Linux system. If you are connected to the Internet, the installer installs other missing Perl modules from CPAN, but does not overwrite existing versions of those modules. See the vSphere SDK for Perl Installation Guide..

Installing vSphere SDK for Perl on Other Linux Distributions

For other supported Linux distributions, the SDK for Perl installer works the way it did for SDK for Perl 5.0. If you have Internet access, you can also direct the RHEL installer to follow this procedure.

  • Explicitly uninstalling previous versions of the software is no longer required.
  • You must have access to the Internet to successfully install vSphere SDK for Perl.
  • You must set your http:// and ftp:// proxies, as follows:
    export http_proxy=http://<proxy_server>:port
    export ftp_proxy=http://<proxy_server>:port
  • The installer installs missing Perl modules from CPAN, but does not overwrite existing versions of those modules.

Note: Downloading modules from CPAN can take a long time.

See the vSphere SDK for Perl Installation Guide.

The vSphere SDK for Perl Windows installer works as before and installs the vSphere SDK for Perl, the vSphere CLI, and all prerequisite software including Active Perl 5.8.8. If you do not want to overwrite an existing Active Perl installation, exit the installer and use a different system for installing the software.

Important: Reboot your Windows system after installation. If you don't, ActivePerl might report that it cannot find some of the Perl modules.

Supported Platforms

SDK for Perl 5.5 is supported on the following Linux platforms:

  • Red Hat Enterprise Linux (RHEL) 6.3 (Server) — 32 bit and 64 bit
  • Red Hat Enterprise Linux (RHEL) 5.5 (Server) — 32 bit and 64 bit
  • Ubuntu 10.04.1 (LTS) — 32 bit and 64 bit
  • SLES 11 — 32 bit and 64 bit
  • SLES 11 SP2 — 32 bit and 64 bit

For this release, vCLI is supported on the following Windows platforms:

  • Windows 7 — 32 bit and 64 bit
  • Windows 8 — 32 bit and 64 bit
  • Windows 2008 — 64 bit
  • Windows Server 2012 — 64 bit

The vSphere Management Assistant (vMA) includes vSphere SDK for Perl. You can deploy vMA on ESXi 5.5 systems. You cannot upgrade an existing version of vMA to include vCLI or vSphere SDK for Perl by running the SDK for Perl installer inside vMA.

Known Issues

vSphere SDK for Perl 5.5 Update 2 has the following known issues:

  • On Linux, installing vSphere SDK for Perl on systems where vSphere CLI is installed results in unusable installation.
    If you install the vSphere SDK for Perl on a Linux system, and if vSphere CLI is already installed on that system, both products are not usable after the installer completes. This problem occurs regardless of the version of the two installers.

    Workaround: Do not install the vSphere SDK for Perl bundle. The vSphere SDK for Perl software is included in the vSphere CLI bundle. Install the vSphere CLI bundle.

  • Missing DLL error during first command execution after installation (Windows). A vSphere SDK for Perl installation on Windows completes successfully. However, when you later run a script, errors about missing DLLs might result. For example:
    libxml2.dll wasn't found

    Workaround: Reboot your Windows system.

  • Obtaining objects of different types requires multiple calls to the Vim::get_views() subroutine.  The Vim::get_views() subroutine takes a reference to an array of managed object references and returns a reference to an array of view objects. Although the array can contain multiple managed object types, objects of only one type can be obtained at the same time.

    Workaround:  You can call get_views() multiple times to obtain multiple object types. Or you can specify the appropriate base class (rather than a specific subclass) as the view type to access values of properties that are common across all objects based on the superclass. For example, view_type = 'ManagedEntity' allows you to retrieve all objects that extend from this base class (VirtualMachine, HostSystem, Folder, ResourcePool, and so on).

  • Must use encoded representation when constructing filters that recognize names containing certain special characters.  Based on what the vSphere Web Services API returns, a few property values, such as ManagedEntity.name, VirtualMachineConfigInfo.name, and VirtualMachineConfigSpec.name, are returned with the characters ’/’, ’\’, and ’%’ encoded as %2f, %5c, and %25.

    For example, if you have a Folder named My%Folder, its name is returned as My%25Folder. If you want to construct a filter that recognizes names containing slashes or percent signs, you must use the encoded representation.

    Workaround: To match a name that contains a percent sign, write:
    filter => { name => qr/%25/ }
    You cannot perform a match on percent sign alone, because a percent sign alone also matches other characters that are preceded by a percent escape character.
    filter => { name => qr/%/ } # wrong;
    You must use case-insensitive matching for escape character sequences that contain alpha characters:
    filter => { name => qr/%2f/i } # matches %2f and %2F