vSphere SDK for Perl 6.0 Update 2
Release Notes

Released 15 Mar 2016

Build 3561779 is the 6.0 Update 2 release of the vSphere SDK for Perl.

Check frequently for additions and updates to these release notes.

vSphere SDK for Perl 6.0 Update 2 Release Notes

Welcome to the vSphere SDK for Perl 6.0 Update 2 release notes.

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.

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 Web Services SDK . 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 data center.

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 vSphere SDK for Perl to manage ESXi 5.x, ESXi 6.0.x, vCenter Server 5.x, and vCenter Server 6.0.x.

What’s New in This Release

This release adds support for the following operating systems:

  • Red Hat Enterprise Linux (RHEL) 6.6 (Server) 64-bit
  • Red Hat Enterprise Linux (RHEL) 7.1 (Server) 64-bit
  • Ubuntu 12.04 (LTS) 64-bit
  • Ubuntu 14.04 (LTS) 64-bit
  • SLES 11 SP3 64-bit
  • SLES 12 64-bit

Supported Platforms

For this release, vCLI 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) 6.6 (Server) — 64-bit
  • Red Hat Enterprise Linux (RHEL) 7.1 (Server) — 64-bit
  • Ubuntu 10.04.1 (LTS) — 32-bit and 64-bit
  • Ubuntu 12.04 (LTS) — 64-bit
  • Ubuntu 14.04 (LTS) — 64-bit
  • SLES 11 — 32-bit and 64-bit
  • SLES 11 SP2 — 32-bit and 64-bit
  • SLES 11 SP3 — 64-bit
  • SLES 12 — 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 2012 R2 (64-bit)

Installing vSphere SDK for Perl

You can install the vSphere SDK for Perl on supported Windows and Linux platforms. The Linux installer behaves differently for RHEL and for other Linux distributions.

Installing Required Prerequisite Software

If required prerequisite software is not installed, the installer stops and requests that you install it. Installation of prerequisite software depends on the platform that you are using. To install the newly supported operating systems, you need to install the following prerequisite software.

  • Red Hat Enterprise Linux (RHEL) 6.6 (Server) 64-bit

    Find the required modules on the installation DVD, or use yum to install them.
    yum install e2fsprogs-devel libuuid-devel
    yum install glibc.i686
    yum install perl-XML-LibXML
  • Red Hat Enterprise Linux (RHEL) 7.1 (Server) 64-bit

    Find the required modules on the installation DVD, or use yum to install them.
    yum install e2fsprogs-devel libuuid-devel openssl-devel perl-devel
    yum install glibc.i686 zlib.i686
    yum install perl-XML-LibXML libncurses.so.5 perl-Crypt-SSLeay
    yum install libwww-perl-5.837 IO-Compress-2.061
  • Ubuntu 12.04 (LTS) 64-bit

    1. Connect to the Internet.
    2. Update the local repository of libraries from a terminal window.
      sudo apt-get update
    3. Install the required libraries from a terminal window.
      sudo apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

    For Ubuntu 12.04 64-bit, the resxtop and ESXCLI commands do not work if you do not install the 32-bit compatibility libraries.

  • Ubuntu 14.04 (LTS) 64-bit

    1. Connect to the Internet.
    2. Update the local repository of libraries from a terminal window.
      sudo apt-get update
    3. Install the required libraries from a terminal window.
      sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 gcc-multilib build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

    For Ubuntu 14.04 64-bit, the resxtop and ESXCLI commands do not work if you do not install the 32-bit compatibility libraries.

  • SLES 11 SP3 64-bit

    Install the prerequisite packages from the SLES SDK DVD. When you insert the DVD, it offers to auto run. Cancel the auto run dialog box and use the yast package installer to install OpenSSL or other missing required packages.

    yast -i openssl-devel libuuid-devel libuuid-devel-32bit

    Some users might be authorized to use the Novell Customer Center and use yast to retrieve missing packages from there.

  • SLES 12 64-bit

    Install the prerequisite packages from the SLES SDK DVD. When you insert the DVD, it offers to auto run. Cancel the auto run dialog box and use the yast package installer to install OpenSSL or other missing required packages.

    yast -i openssl-devel libuuid-devel libuuid-devel-32bit e2fsprogs-devel

    Some users might be authorized to use the Novell Customer Center and use yast to retrieve missing packages from there.

Installing vSphere SDK for Perl on RHEL

On RHEL, the 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 the vSphere SDK for Perl 6.0.
  4. When prompted, respond Yes to install the missing Perl modules from the installer package.

The vSphere SDK for Perl Linux installer stops installation if required modules cannot be found on your Linux system. The installer installs other missing Perl modules, 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 earlier versions of the vSphere SDK for Perl. If you have Internet access, you can 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.
  • Depending on your environment, you might need to 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.

Installing vSphere SDK for Perl on Windows

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.14.4. 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.

Known Issues

vSphere SDK for Perl 6.0 Update 2 is known to have the following issues:

  • 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