<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<book>
  <xi:include href="Book_Info_Release_Notes_4.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <chapter id="welcome-4.2">
    <title>Welcome to &PRODUCT; 4.2</title>
    <para>Welcome to the 4.2.0 release of &PRODUCT;, the second major release from the Apache
      CloudStack project since its graduation from the Apache Incubator. &PRODUCT; 4.2 includes more
      than 70 new features and enhancements. The focus of the release is on three major
      areas:</para>
    <itemizedlist>
      <listitem>
        <para>Improved support for both legacy-style and cloud-style workloads</para>
      </listitem>
      <listitem>
        <para>New third-party plug-in architecture</para>
      </listitem>
      <listitem>
        <para>Networking enhancements</para>
      </listitem>
    </itemizedlist>
    <para>In addition to these major new areas of functionality, &PRODUCT; 4.2 provides many
      additional enhancements in a variety of product areas. All of the new features are summarized
      later in this Release Note.</para>
    <para>This document contains information specific to this release of &PRODUCT;, including
      upgrade instructions from prior releases, new features added to &PRODUCT;, API changes, and
      issues fixed in the release. For installation instructions, please see the <ulink
        url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/index.html"
        >Installation Guide</ulink>. For usage and administration instructions, please see the
        <ulink
        url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/index.html"
        >&PRODUCT; Administrator's Guide</ulink>. Developers and users who wish to work with the API
      will find instruction in the <ulink
        url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-incubating/html/API_Developers_Guide/index.html"
        >&PRODUCT; API Developer's Guide</ulink></para>
    <para>If you find any errors or problems in this guide, please see <xref linkend="feedback"/>.
      We hope you enjoy working with &PRODUCT;!</para>
  </chapter>
  <chapter id="version-4.2">
    <title>What's New in 4.2.0</title>
    <para>&PRODUCT; 4.2 includes the following new features.</para>
    <section id="workloads">
      <title>Features to Support Heterogeneous Workloads</title>
      <para>The following new features help &PRODUCT; 4.2 better support both legacy and cloud-era
        style zones.</para>
      <section id="regions">
        <title>Regions</title>
        <para>To increase reliability of the cloud, you can optionally group resources into
          geographic regions. A region is the largest available organizational unit within a cloud
          deployment. A region is made up of several availability zones, where each zone is
          equivalent to a datacenter. Each region is controlled by its own cluster of Management
          Servers, running in one of the zones. The zones in a region are typically located in close
          geographical proximity. Regions are a useful technique for providing fault tolerance and
          disaster recovery.</para>
        <para>By grouping zones into regions, the cloud can achieve higher availability and
          scalability. User accounts can span regions, so that users can deploy VMs in multiple,
          widely-dispersed regions. Even if one of the regions becomes unavailable, the services are
          still available to the end-user through VMs deployed in another region. And by grouping
          communities of zones under their own nearby Management Servers, the latency of
          communications within the cloud is reduced compared to managing widely-dispersed zones
          from a single central Management Server.</para>
        <para>Usage records can also be consolidated and tracked at the region level, creating
          reports or invoices for each geographic region.</para>
      </section>
      <section id="object-store">
        <title>Object Storage Plugin Architecture</title>
        <para>Artifacts such as templates, ISOs and snapshots are kept in storage which &PRODUCT;
          refers to as secondary storage. To improve scalability and performance, as when a number
          of hosts access secondary storage concurrently, object storage can be used for secondary
          storage. Object storage can also provide built-in high availability capability. When using
          object storage, access to secondary storage data can be made available across multiple
          zones in a region. This is a huge benefit, as it is no longer necessary to copy templates,
          snapshots etc. across zones as would be needed in an NFS-only environment.</para>
        <para>Object storage is provided through third-party software such as Amazon Simple Storage
          Service (S3) or any other object storage that supports the S3 interface. These third party
          object storages can be integrated with &PRODUCT; by writing plugin software that uses the
          object storage plugin capability introduced in &PRODUCT; 4.2. Several new pluggable
          service interfaces are available so that different storage providers can develop
          vendor-specific plugins based on the well-defined contracts that can be seamlessly managed
          by &PRODUCT;.</para>
      </section>
      <section id="zone-wide-primary-storage">
        <title>Zone-Wide Primary Storage</title>
        <para>(Supported on KVM and VMware)</para>
        <para>In &PRODUCT; 4.2, you can provision primary storage on a per-zone basis. Data volumes
          in the primary storage can be attached to any VM on any host in the zone.</para>
        <para>In previous &PRODUCT; versions, each cluster had its own primary storage. Data in the
          primary storage was directly available only to VMs within that cluster. If a VM in a
          different cluster needed some of the data, it must be copied from one cluster to another,
          using the zone's secondary storage as an intermediate step. This operation was
          unnecessarily time-consuming.</para>
      </section>
      <section id="vmware-datacenter">
        <title>VMware Datacenter Now Visible As a &PRODUCT; Zone</title>
        <para>In order to support zone-wide functions for VMware, changes have been made so that
          &PRODUCT; is now aware of VMware Datacenters and can map each Datacenter to a &PRODUCT;
          zone. Previously, &PRODUCT; was only aware of VMware Clusters, a smaller organizational
          unit than Datacenters. This implies that a single &PRODUCT; zone could possibly contain
          clusters from different VMware Datacenters. In order for zone-wide functions, such as
          zone-wide primary storage, to work for VMware hosts, &PRODUCT; has to make sure that a
          zone contains only a single VMware Datacenter. Therefore, when you are creating a new
          &PRODUCT; zone, you will now be able to select a VMware Datacenter for the zone. If you
          are provisioning multiple VMware Datacenters, each one will be set up as a single zone in
          &PRODUCT;. </para>
        <note>
          <para>If you are upgrading from a previous &PRODUCT; version, and your existing deployment
            contains a zone with clusters from multiple VMware Datacenters, that zone will not be
            forcibly migrated to the new model. It will continue to function as before. However, any
            new zone-wide operations, such as zone-wide primary storage, will not be available in
            that zone.</para>
        </note>
        <para/>
      </section>
    </section>
    <section id="third-party-plugin">
      <title>Third-Party UI Plugin Framework</title>
      <para>Using the new third-party plugin framework, you can write and install extensions to
        &PRODUCT;. The installed and enabled plugins will appear in the UI.</para>
      <para>The basic procedure for adding a UI plugin is explained in the Developer Guide. In
        summary, the plugin developer creates the plugin code itself (in Javascript), a thumbnail
        image, the plugin listing, and a CSS file. The &PRODUCT; administrator adds the folder
        containing the plugin code under the &PRODUCT; PLUGINS folder and adds the plugin name to a
        configuration file (plugins.js).</para>
      <para>The next time the user refreshes the UI in the browser, the plugin will appear under the
        Plugins button in the left navigation bar.</para>
    </section>
    <section id="networking">
      <title>Networking Enhancements</title>
      <para>The following new features provide additional networking functionality in &PRODUCT;
        4.2.</para>
      <section id="ipv6">
        <title>IPv6 </title>
        <para>&PRODUCT; 4.2 introduces initial support for IPv6. This feature is provided as a
          technical preview only. Full support is planned for a future release.</para>
      </section>
      <section id="portable-ip">
        <title>Portable IPs</title>
        <para>Portable IPs in &PRODUCT; are elastic IPs that can be transferred across
          geographically separated zones. As an administrator, you can provision a pool of portable
          IPs at region level and are available for user consumption. The users can acquire portable
          IPs if admin has provisioned portable public IPs at the region level they are part of.
          These IPs can be used for any service within an advanced zone. You can also use portable
          IPs for EIP service in Basic zones. Additionally, a portable IP can be transferred from
          one network to another network.</para>
      </section>
      <section id="ntier-apps">
        <title>N-Tier Applications</title>
        <para>In &PRODUCT; 3.0.6, a functionality was added to allow users to create a multi-tier
          application connected to a single instance of a Virtual Router that supports inter-VLAN
          routing. Such a multi-tier application is called a virtual private cloud (VPC). Users were
          also able to connect their multi-tier applications to a private Gateway or a Site-to-Site
          VPN tunnel and route certain traffic to those gateways. For &PRODUCT; 4.2, additional
          features are implemented to enhance VPC applications.</para>
        <itemizedlist>
          <listitem>
            <para><xref linkend="kvm-vpc"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="add-loadbalancer-rule-vpc"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="current-lb-vpc"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="across-tiers-lb"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="ns-support"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="configure-acl"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="acl-private-gateway"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="allow-acl"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="acl-deny"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="add-vm-tier-sharednw"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="add-gateway-vpc"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="sourcenat-private-gateway"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="eightvpn"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="static-route"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="blacklist-route"/></para>
          </listitem>
        </itemizedlist>
        <section id="kvm-vpc"><title>Support for KVM</title><para>VPC is now supported on KVM
          hypervisors.</para></section>
        <section id="add-loadbalancer-rule-vpc">
          <title>Load Balancing Support for VPC</title>
          <para>In a VPC, you can configure two types of load balancing&mdash;external LB and
            internal LB. External LB is nothing but a LB rule created to redirect the traffic
            received at a public IP of the VPC virtual router. The traffic is load balanced within a
            tier based on your configuration. Citrix NetScaler and VPC virtual router are supported
            for external LB. When you use internal LB service, traffic received at a tier is load
            balanced across different VMs within that tier. For example, traffic reached at Web tier
            is redirected to another VM in that tier. External load balancing devices are not
            supported for internal LB. The service is provided by a internal LB VM configured on the
            target tier.</para>
          <section id="current-lb-vpc">
            <title>Load Balancing Within a Tier (External LB)</title>
            <para>A &PRODUCT; user or administrator may create load balancing rules that balance
              traffic received at a public IP to one or more VMs that belong to a network tier that
              provides load balancing service in a VPC. A user creates a rule, specifies an
              algorithm, and assigns the rule to a set of VMs within a tier.</para>
          </section>
          <section id="across-tiers-lb">
            <title>Load Balancing Across Tiers</title>
            <para>&PRODUCT; supports sharing workload across different tiers within your VPC. Assume
              that multiple tiers are set up in your environment, such as Web tier and Application
              tier. Traffic to each tier is balanced on the VPC virtual router on the public side.
              If you want the traffic coming from the Web tier to the Application tier to be
              balanced, use the internal load balancing feature offered by &PRODUCT;.</para>
          </section>
          <section id="ns-support">
            <title>Netscaler Support for VPC</title>
            <para>Citrix NetScaler is supported for external LB. Certified version for this feature
              is NetScaler 10.0 Build 74.4006.e.</para>
          </section>
        </section>
        <section id="configure-acl">
          <title>Enhanced Access Control List</title>
          <para>Network Access Control List (ACL) on the VPC virtual router is enhanced. The network
            ACLs can be created for the tiers only if the NetworkACL service is supported. In
            &PRODUCT; terminology, Network ACL is a group of Network ACL items. Network ACL items
            are nothing but numbered rules that are evaluated in order, starting with the lowest
            numbered rule. These rules determine whether traffic is allowed in or out of any tier
            associated with the network ACL. You need to add the Network ACL items to the Network
            ACL, then associate the Network ACL with a tier. Network ACL is associated with a VPC
            and can be assigned to multiple VPC tiers within a VPC. A Tier is associated with a
            Network ACL at all the times. Each tier can be associated with only one ACL.</para>
          <para>The default Network ACL is used when no ACL is associated. Default behavior is all
            incoming traffic to guest networks is blocked and all outgoing traffic from guest
            networks is allowed. Default network ACL cannot be removed or modified.</para>
          <section id="acl-private-gateway">
            <title>ACL on Private Gateway</title>
            <para>The traffic on the VPC private gateway is controlled by creating both ingress and
              egress network ACL rules. The ACLs contains both allow and deny rules. As per the
              rule, all the ingress traffic to the private gateway interface and all the egress
              traffic out from the private gateway interface are blocked. You can change this
              default behaviour while creating a private gateway.</para>
          </section>
          <section id="allow-acl">
            <title>Allow ACL on All Level 4 Protocols</title>
            <para>In addition to the existing protocol support for ICMP, TCP, UDP, support for All
              Level 4 protocols is added. The protocol numbers from 0 to 255 are supported.</para>
          </section>
          <section id="acl-deny">
            <title>Support for ACL Deny Rules</title>
            <para>In addition to the existing support for ACL Allow rules, support for ACL Deny
              rules has been added in &PRODUCT; 4.2. As part of this, two operations are supported:
              Number and Action. You can configure a rule, allow or deny, by using action. Use
              Number to add a rule number.</para>
          </section>
        </section>
        <section id="add-vm-tier-sharednw">
          <title>Deploying VMs to a VPC Tier and Shared Networks</title>
          <para>&PRODUCT; allows you to deploy VMs on a VPC tier and one or more shared networks.
            With this feature, the VMs deployed in a multi-tier application can receive services
            offered by a service provider over the shared network. One example of such a service is
            monitoring service.</para>
        </section>
        <section id="add-gateway-vpc">
          <title>Adding a Private Gateway to a VPC</title>
          <para>A private gateway can be added by the root admin only. The VPC private network has
            1:1 relationship with the NIC of the physical network. You can configure multiple
            private gateways to a single VPC. No gateways with duplicated VLAN and IP are allowed in
            the same data center.</para>
          <section id="sourcenat-private-gateway">
            <title>Source NAT on Private Gateway</title>
            <para>You might want to deploy multiple VPCs with the same super CIDR and guest tier
              CIDR. Therefore, multiple guest VMs from different VPCs can have the same IPs to reach
              a enterprise data center through the private gateway. In such cases, a NAT service
              need to be configured on the private gateway. If Source NAT is enabled, the guest VMs
              in VPC reaches the enterprise network via private gateway IP address by using the NAT
              service. </para>
            <para>The Source NAT service on a private gateway can be enabled while adding the
              private gateway. On deletion of a private gateway, source NAT rules specific to the
              private gateway are deleted.</para>
          </section>
          <section id="eightvpn">
            <title>VPN Gateways</title>
            <para>Support up to 8 VPN Gateways is added.</para>
          </section>
          <section id="static-route">
            <title>Creating a Static Route</title>
            <para>&PRODUCT; enables you to specify routing for the VPN connection you create. You
              can enter one or CIDR addresses to indicate which traffic is to be routed back to the
              gateway.</para>
          </section>
          <section id="blacklist-route">
            <title>Blacklisting Routes</title>
            <para>&PRODUCT; enables you to block a list of routes so that they are not assigned to
              any of the VPC private gateways. Specify the list of routes that you want to blacklist
              in the <code>blacklisted.routes</code> global parameter. Note that the parameter
              update affects only new static route creations. If you block an existing static route,
              it remains intact and continue functioning. You cannot add a static route if the route
              is blacklisted for the zone. </para>
          </section>
        </section>
      </section>
      <section id="vlan-assign-isolated-nw">
        <title>Assigning VLANs to Isolated Networks</title>
        <para>&PRODUCT; provides you the ability to control VLAN assignment to Isolated networks.
          You can assign a VLAN ID when a network is created, just the way it's done for Shared
          networks.</para>
        <para>The former behaviour also is supported &mdash; VLAN is randomly allocated to a network
          from the VNET range of the physical network when the network turns to Implemented state.
          The VLAN is released back to the VNET pool when the network shuts down as a part of the
          Network Garbage Collection. The VLAN can be re-used either by the same network when it is
          implemented again, or by any other network. On each subsequent implementation of a
          network, a new VLAN can be assigned.</para>
        <note>
          <para>You cannot change a VLAN once it's assigned to the network. The VLAN remains with
            the network for its entire life cycle.</para>
        </note>
      </section>
      <section id="persistent-network">
        <title>Persistent Networks</title>
        <para>&PRODUCT; 4.2 supports Persistent Networks. The network that you can provision without
          having to deploy any VMs on it is called a Persistent Network. A Persistent Network can be
          part of a VPC or a non-VPC environment. With the addition of this feature, you will have
          the ability to create a network in &PRODUCT; in which physical devices can be deployed
          without having to run any VMs. Additionally, you can deploy physical devices on that
          network. Another advantages is that you can create a VPC with a tier that consists only
          physical devices. For example, you might create a VPC for a three-tier application, deploy
          VMs for Web and Application tier, and use physical machines for the Database tier. Another
          use case is that if you are providing services by using physical hardware, you can define
          the network as persistent and therefore even if all its VMs are destroyed the services
          will not be discontinued.</para>
      </section>
      <section id="vnmc-cisco">
        <title>Cisco VNMC Support</title>
        <para>Cisco Virtual Network Management Center (VNMC) provides centralized multi-device and
          policy management for Cisco Network Virtual Services. When Cisco VNMC is integrated with
          ASA 1000v Cloud Firewall and Cisco Nexus 1000v dvSwitch in &PRODUCT; you will be able to: </para>
        <itemizedlist>
          <listitem>
            <para>Configure Cisco ASA 1000v Firewalls</para>
          </listitem>
          <listitem>
            <para>Create and apply security profiles that contain ACL policy sets for both ingress
              and egress traffic, and NAT policy sets</para>
          </listitem>
        </itemizedlist>
        <para>&PRODUCT; supports Cisco VNMC on Cisco Nexus 1000v dvSwich-enabled VMware
          hypervisors.</para>
      </section>
      <section id="vmware-vswitch">
        <title>VMware vNetwork Distributed vSwitch</title>
        <para>&PRODUCT; supports VMware vSphere Distributed Switch (VDS) for virtual network
          configuration in a VMware vSphere environment. Each vCenter server instance can support up
          to 128 VDSs and each VDS can manage up to 500 VMware hosts. &PRODUCT; supports configuring
          virtual networks in a deployment with a mix of Virtual Distributed Switch, Standard
          Virtual Switch and Nexus 1000v Virtual Switch. </para>
      </section>
      <section id="reserved-ip-addresses-non-csvms">
        <title>IP Reservation in Isolated Guest Networks</title>
        <para>In Isolated guest networks in &PRODUCT; 4.2, a part of the guest IP address space can
          be reserved for non-&PRODUCT; VMs or physical servers. To do so, you configure a range of
          Reserved IP addresses by specifying the CIDR when a guest network is in Implemented state.
          The advantage of having this feature is that if your customers wish to have non-&PRODUCT;
          controlled VMs or physical servers on the same network, they can use a part of the IP
          address space that is primarily provided to the guest network. When IP reservation is
          configured, the administrator can add additional VMs or physical servers that are not part
          of &PRODUCT; to the same network and assign them the Reserved IP addresses. &PRODUCT;
          guest VMs cannot acquire IPs from the Reserved IP Range.</para>
      </section>
      <section id="ip-vlan-tenant">
        <title>Dedicated Resources: Public IP Addresses and VLANs Per Account</title>
        <para>&PRODUCT; provides you the ability to reserve a set of public IP addresses and VLANs
          exclusively for an account. During zone creation, you can continue to define a set of
          VLANs and multiple public IP ranges. This feature extends the functionality to enable you
          to dedicate a fixed set of VLANs and guest IP addresses for a tenant.</para>
        <para>This feature provides you the following capabilities:</para>
        <itemizedlist>
          <listitem>
            <para>Reserve a VLAN range and public IP address range from an Advanced zone and assign
              it to an account</para>
          </listitem>
          <listitem>
            <para>Disassociate a VLAN and public IP address range from an account</para>
          </listitem>
        </itemizedlist>
        <note>
          <para>Ensure that you check whether the required range is available and conforms to
            account limits. The maximum IPs per account limit cannot be superseded.</para>
        </note>
      </section>
      <section id="egress-firewall">
        <title>Enhanced Juniper SRX Support for Egress Firewall Rules</title>
        <para>Egress firewall rules were previously supported on virtual routers, and now they are
          also supported on Juniper SRX external networking devices.</para>
        <para>Egress traffic originates from a private network to a public network, such as the
          Internet. By default, the egress traffic is blocked, so no outgoing traffic is allowed
          from a guest network to the Internet. However, you can control the egress traffic in an
          Advanced zone by creating egress firewall rules. When an egress firewall rule is applied,
          the traffic specific to the rule is allowed and the remaining traffic is blocked. When all
          the firewall rules are removed the default policy, Block, is applied.</para>
        <note>
          <para>Egress firewall rules are not supported on Shared networks. They are supported only
            on Isolated guest networks.</para>
        </note>
      </section>
      <section id="default-egress-policy">
        <title>Configuring the Default Egress Policy</title>
        <para>The default egress policy for Isolated guest network can be configured by using
          Network offering. Use the create network offering option to determine whether the default
          policy should be block or allow all the traffic to the public network from a guest
          network. Use this network offering to create the network. If no policy is specified, by
          default all the traffic is allowed from the guest network that you create by using this
          network offering.</para>
        <para>You have two options: Allow and Deny.</para>
        <para>If you select Allow for a network offering, by default egress traffic is allowed.
          However, when an egress rule is configured for a guest network, rules are applied to block
          the specified traffic and rest are allowed. If no egress rules are configured for the
          network, egress traffic is accepted. If you select Deny for a network offering, by default
          egress traffic for the guest network is blocked. However, when an egress rules is
          configured for a guest network, rules are applied to allow the specified traffic. While
          implementing a guest network, &PRODUCT; adds the firewall egress rule specific to the
          default egress policy for the guest network.</para>
        <para>This feature is supported only on virtual router and Juniper SRX.</para>
      </section>
      <section id="non-contiguous-vlan">
        <title>Non-Contiguous VLAN Ranges</title>
        <para>&PRODUCT; provides you with the flexibility to add non contiguous VLAN ranges to your
          network. The administrator can either update an existing VLAN range or add multiple non
          contiguous VLAN ranges while creating a zone. You can also use the UpdatephysicalNetwork
          API to extend the VLAN range.</para>
      </section>
      <section id="pvlan">
        <title>Isolation in Advanced Zone Using Private VLAN</title>
        <para>Isolation of guest traffic in shared networks can be achieved by using Private VLANs
          (PVLAN). PVLANs provide Layer 2 isolation between ports within the same VLAN. In a
          PVLAN-enabled shared network, a user VM cannot reach other user VM though they can reach
          the DHCP server and gateway, this would in turn allow users to control traffic within a
          network and help them deploy multiple applications without communication between
          application as well as prevent communication with other users’ VMs.</para>
        <itemizedlist>
          <listitem>
            <para>Isolate VMs in a shared networks by using Private VLANs.</para>
          </listitem>
          <listitem>
            <para>Supported on KVM, XenServer, and VMware hypervisors.</para>
          </listitem>
          <listitem>
            <para>PVLAN-enabled shared network can be a part of multiple networks of a guest VM.
            </para>
          </listitem>
        </itemizedlist>
        <para>For further reading:</para>
        <itemizedlist>
          <listitem>
            <para><ulink
                url="http://www.cisco.com/en/US/docs/switches/lan/catalyst3750/software/release/12.2_25_see/configuration/guide/swpvlan.html#wp1038379"
                >Understanding Private VLANs</ulink></para>
          </listitem>
          <listitem>
            <para><ulink url="http://tools.ietf.org/html/rfc5517">Cisco Systems' Private VLANs:
                Scalable Security in a Multi-Client Environment</ulink></para>
          </listitem>
          <listitem>
            <para><ulink url="http://kb.vmware.com">Private VLAN (PVLAN) on vNetwork Distributed
                Switch - Concept Overview (1010691)</ulink></para>
          </listitem>
        </itemizedlist>
      </section>
      <section id="multiple-ip-nic">
        <title>Configuring Multiple IP Addresses on a Single NIC</title>
        <para>(Supported on XenServer, KVM, and VMware hypervisors)</para>
        <para>&PRODUCT; now provides you the ability to associate multiple private IP addresses per
          guest VM NIC. This feature is supported on all the network configurations&mdash;Basic,
          Advanced, and VPC. Security Groups, Static NAT and Port forwarding services are supported
          on these additional IPs. In addition to the primary IP, you can assign additional IPs to
          the guest VM NIC. Up to 256 IP addresses are allowed per NIC.</para>
        <para>As always, you can specify an IP from the guest subnet; if not specified, an IP is
          automatically picked up from the guest VM subnet. You can view the IPs associated with for
          each guest VM NICs on the UI. You can apply NAT on these additional guest IPs by using
          firewall configuration in the &PRODUCT; UI. You must specify the NIC to which the IP
          should be associated.</para>
      </section>
      <section id="multiple-ip-range">
        <title>Adding Multiple IP Ranges</title>
        <para>(Supported on KVM, xenServer, and VMware hypervisors)</para>
        <para>&PRODUCT; 4.2 provides you with the flexibility to add guest IP ranges from different
          subnets in Basic zones and security groups-enabled Advanced zones. For security
          groups-enabled Advanced zones, it implies multiple subnets can be added to the same VLAN.
          With the addition of this feature, you will be able to add IP address ranges from the same
          subnet or from a different one when IP address are exhausted. This would in turn allows
          you to employ higher number of subnets and thus reduce the address management
          overhead.</para>
        <para>Ensure that you manually configure the gateway of the new subnet before adding the IP
          range. Note that &PRODUCT; supports only one gateway for a subnet; overlapping subnets are
          not currently supported.</para>
        <para>You can also delete IP ranges. This operation fails if an IP from the remove range is
          in use. If the remove range contains the IP address on which the DHCP server is running,
          &PRODUCT; acquires a new IP from the same subnet. If no IP is available in the subnet, the
          remove operation fails.</para>
        <note>
          <para>The feature can only be implemented on IPv4 addresses.</para>
        </note>
      </section>
      <section id="add-remove-network-vm">
        <title>Support for Multiple Networks in VMs</title>
        <para>(Supported on XenServer, VMware and KVM hypervisors)</para>
        <para>&PRODUCT; 4.2 provides you the ability to add and remove multiple networks to a VM.
          You can remove a network from a VM and add a new network. You can also change the default
          network of a VM. With this functionality, hybrid or traditional server loads can be
          accommodated with ease. </para>
        <para>For adding or removing a NIC to work on VMware, ensure that vm-tools are running on
          guest VMs.</para>
      </section>
      <section id="gslb">
        <title>Global Server Load Balancing</title>
        <para>&PRODUCT; 4.2 supports Global Server Load Balancing (GSLB) functionalities to provide
          business continuity by load balancing traffic to an instance on active zones only in case
          of zone failures . &PRODUCT; achieve this by extending its functionality of integrating
          with NetScaler Application Delivery Controller (ADC), which also provides various GSLB
          capabilities, such as disaster recovery and load balancing. The DNS redirection technique
          is used to achieve GSLB in &PRODUCT;. In order to support this functionality, region level
          services and service provider are introduced. A new service 'GSLB' is introduced as a
          region level service. The GSLB service provider is introduced that will provider the GSLB
          service. Currently, NetScaler is the supported GSLB provider in &PRODUCT;. GSLB
          functionality works in an Active-Active data center environment. </para>
      </section>
      <section id="lb-on-shared-vlan">
        <title>Enhanced Load Balancing Services Using External Provider on Shared VLANs</title>
        <para>Network services like Firewall, Load Balancing, and NAT are now supported in shared
          networks created in an advanced zone. In effect, the following network services shall be
          made available to a VM in a shared network: Source NAT, Static NAT, Port Forwarding,
          Firewall and Load balancing. Subset of these service can be chosen while creating a
          network offering for shared networks. Services available in a shared network is defined by
          the network offering and the service chosen in the network offering. For example, if
          network offering for a shared network has source NAT service enabled, a public IP shall be
          provisioned and source NAT is configured on the firewall device to provide public access
          to the VMs on the shared network. Static NAT, Port Forwarding, Load Balancing, and
          Firewall services shall be available only on the acquired public IPs associated with a
          shared network.</para>
        <para>Additionally, Netscaler and Juniper SRX firewall device can be configured inline or
          side-by-side mode.</para>
      </section>
      <section id="health-check">
        <title>Health Checks for Load Balanced Instances</title>
        <note>
          <para>This feature is supported only on NetScaler version 10.0 and beyond.</para>
        </note>
        <para>(NetScaler load balancer only) A load balancer rule distributes requests among a pool
          of services (a service in this context means an application running on a virtual machine).
          When creating a load balancer rule, you can specify a health check which will ensure that
          the rule forwards requests only to services that are healthy (running and available). When
          a health check is in effect, the load balancer will stop forwarding requests to any
          resources that it has found to be unhealthy. If the resource later becomes available
          again, the periodic health check (periodicity is configurable) will discover it and the
          resource will once again be made available to the load balancer.</para>
        <para>To configure how often the health check is performed by default, use the global
          configuration setting healthcheck.update.interval. This default applies to all the health
          check policies in the cloud. You can override this value for an individual health check
          policy.</para>
      </section>
    </section>
    <section id="host-and-vm-enhancements">
      <title>Host and Virtual Machine Enhancements</title>
      <para>The following new features expand the ways you can use hosts and virtual
        machines.</para>
      <section id="vmware-drs">
        <title>VMware DRS Support</title>
        <para>The VMware vSphere Distributed Resources Scheduler (DRS) is supported.</para>
      </section>
      <section id="windows-8">
        <title>Windows 8 and Windows Server 2012 as VM Guest OS</title>
        <para>(Supported on XenServer, VMware, and KVM)</para>
        <para>Windows 8 and Windows Server 2012 can now be used as OS types on guest virtual
          machines. The OS would be made available the same as any other, by uploading an ISO or a
          template. The instructions for uploading ISOs and templates are given in the
          Administrator's Guide. </para>
        <note>
          <para><emphasis role="bold">Limitation:</emphasis> When used with VMware hosts, this
            feature works only for the following versions: vSphere ESXi 5.1 and ESXi 5.0 Patch
            4.</para>
        </note>
        <para/>
      </section>
      <section id="change-account">
        <title>Change Account Ownership of Virtual Machines</title>
        <para>A root administrator can now change the ownership of any virtual machine from one
          account to any other account. A domain or sub-domain administrator can do the same for VMs
          within the domain from one account to any other account in the domain.</para>
      </section>
      <section id="dedicated-resources">
        <title>Private Pod, Cluster, or Host</title>
        <para>Dedicating pod, cluster or host to a specific domain/account means that the
          domain/account will have sole access to the dedicated pod, cluster or hosts such that
          scalability, security and manageability within a domain/account can be improved. The
          resources which belong to that tenant will be placed into that dedicated pod, cluster or
          host.</para>
      </section>
      <section id="resize-volume">
        <title>Resizing Volumes</title>
        <para>&PRODUCT; provides the ability to resize data disks; &PRODUCT; controls volume size by
          using disk offerings. This provides &PRODUCT; administrators with the flexibility to
          choose how much space they want to make available to the end users. Volumes within the
          disk offerings with the same storage tag can be resized. For example, if you only want to
          offer 10, 50, and 100 GB offerings, the allowed resize should stay within those limits.
          That implies if you define a 10 GB, a 50 GB and a 100 GB disk offerings, a user can
          upgrade from 10 GB to 50 GB, or 50 GB to 100 GB. If you create a custom-sized disk
          offering, then you have the option to resize the volume by specifying a new, larger size.
          Additionally, using the resizeVolume API, a data volume can be moved from a static disk
          offering to a custom disk offering with the size specified. This functionality allows
          those who might be billing by certain volume sizes or disk offerings to stick to that
          model, while providing the flexibility to migrate to whatever custom size necessary. This
          feature is supported on KVM, XenServer, and VMware hosts. However, shrinking volumes is
          not supported on VMware hosts</para>
      </section>
      <section id="volume-snapshot-enhancement">
        <title>VMware Volume Snapshot Improved Performance</title>
        <para>When you take a snapshot of a data volume on VMware, &PRODUCT; will now use a more
          efficient storage technique to improve performance.</para>
        <para>Previously, every snapshot was immediately exported from vCenter to a mounted NFS
          share and packaged into an OVA file format. This operation consumed time and resources.
          Starting from 4.2, the original file formats (e.g., VMDK) provided by vCenter will be
          retained. An OVA file will only be created as needed, on demand.</para>
        <para>The new process applies only to newly created snapshots after upgrade to &PRODUCT;
          4.2. Snapshots that have already been taken and stored in OVA format will continue to
          exist in that format, and will continue to work as expected.</para>
      </section>
      <section id="storage-migration">
        <title>Storage Migration: XenMotion and vMotion</title>
        <para>(Supported on XenServer and VMware)</para>
        <para>Storage migration allows VMs to be moved from one host to another, where the VMs are
          not located on storage shared between the two hosts. It provides the option to live
          migrate a VM’s disks along with the VM itself. It is now possible to migrate a VM from one
          XenServer resource pool / VMware cluster to another, or to migrate a VM whose disks are on
          local storage, or even to migrate a VM’s disks from one storage repository to another, all
          while the VM is running.</para>
      </section>
      <section id="vmware-configure-linked-clones">
        <title>Configuring Usage of Linked Clones on VMware</title>
        <para>(For ESX hypervisor in conjunction with vCenter)</para>
        <para>In &PRODUCT; 4.2, the creation of VMs as full clones is allowed. In previous versions,
          only linked clones were possible.</para>
        <para>For a full description of clone types, refer to VMware documentation. In summary: A
          full clone is a copy of an existing virtual machine which, once created, does not depend
          in any way on the original virtual machine. A linked clone is also a copy of an existing
          virtual machine, but it has ongoing dependency on the original. A linked clone shares the
          virtual disk of the original VM, and retains access to all files that were present at the
          time the clone was created.</para>
        <para>A new global configuration setting has been added, vmware.create.full.clone. When the
          administrator sets this to true, end users can create guest VMs only as full clones. The
          default value is true for new installations. For customers upgrading from a previous
          version of &PRODUCT;, the default value of vmware.create.full.clone is false.</para>
      </section>
      <section id="host-deployment-rules">
        <title>VM Deployment Rules</title>
        <para>Rules can be set up to ensure that particular VMs are not placed on the same physical
          host. These "anti-affinity rules" can increase the reliability of applications by ensuring
          that the failure of a single host can not take down the entire group of VMs supporting a
          given application. See Affinity Groups in the &PRODUCT; 4.2 Administration Guide.</para>
      </section>
      <section id="cpu-ram-dynamic-scaling">
        <title>CPU and Memory Scaling for Running VMs</title>
        <para>(Supported on VMware and XenServer)</para>
        <para>You can now change the CPU and RAM values for a running virtual machine. In previous
          versions of &PRODUCT;, this could only be done on a stopped VM.</para>
        <para>It is not always possible to accurately predict the CPU and RAM requirements when you
          first deploy a VM. You might need to increase or decrease these resources at any time
          during the life of a VM. With the new ability to dynamically modify CPU and RAM levels,
          you can change these resources for a running VM without incurring any downtime.</para>
        <para>Dynamic CPU and RAM scaling can be used in the following cases:</para>
        <itemizedlist>
          <listitem>
            <para>New VMs that are created after the installation of &PRODUCT; 4.2. If you are
              upgrading from a previous version of &PRODUCT;, your existing VMs created with
              previous versions will not have the dynamic scaling capability.</para>
          </listitem>
          <listitem>
            <para>User VMs on hosts running VMware and XenServer.</para>
          </listitem>
          <listitem>
            <para>System VMs on VMware.</para>
          </listitem>
          <listitem>
            <para>VM Tools or XenServer Tools must be installed on the virtual machine.</para>
          </listitem>
          <listitem>
            <para>The new requested CPU and RAM values must be within the constraints allowed by the
              hypervisor and the VM operating system.</para>
          </listitem>
        </itemizedlist>
        <para>To configure this feature, use the following new global configuration
          variables:</para>
        <itemizedlist>
          <listitem>
            <para>enable.dynamic.scale.vm: Set to True to enable the feature. By default, the
              feature is turned off.</para>
          </listitem>
          <listitem>
            <para>scale.retry: How many times to attempt the scaling operation. Default = 2.</para>
          </listitem>
        </itemizedlist>
      </section>
      <section id="cpu-ram-overcommit">
        <title>CPU and Memory Over-Provisioning</title>
        <para>(Supported for XenServer, KVM, and VMware)</para>
        <para>In &PRODUCT; 4.2, CPU and memory (RAM) over-provisioning factors can be set for each
          cluster to change the number of VMs that can run on each host in the cluster. This helps
          optimize the use of resources. By increasing the over-provisioning ratio, more resource
          capacity will be used. If the ratio is set to 1, no over-provisioning is done.</para>
        <para>In previous releases, &PRODUCT; did not perform memory over-provisioning. It performed
          CPU over-provisioning based on a ratio configured by the administrator in the global
          configuration setting cpu.overprovisioning.factor. Starting in 4.2, the administrator can
          specify a memory over-provisioning ratio, and can specify both CPU and memory
          over-provisioning ratios on a per-cluster basis, rather than only on a global
          basis.</para>
        <para>In any given cloud, the optimum number of VMs for each host is affected by such things
          as the hypervisor, storage, and hardware configuration. These may be different for each
          cluster in the same cloud. A single global over-provisioning setting could not provide the
          best utilization for all the different clusters in the cloud. It had to be set for the
          lowest common denominator. The new per-cluster setting provides a finer granularity for
          better utilization of resources, no matter where the &PRODUCT; placement algorithm decides
          to place a VM.</para>
      </section>
      <section id="baremetal">
        <title>Kickstart Installation for Bare Metal Provisioning</title>
        <para>&PRODUCT; 4.2 supports the kick start installation method for RPM-based Linux
          operating systems on baremetal hosts in basic zones. Users can provision a baremetal host
          managed by &PRODUCT; as long as they have the kick start file and corresponding OS
          installation ISO ready.</para>
        <para>Tested on CentOS 5.5, CentOS 6.2, CentOS 6.3, Ubuntu 12.04.</para>
        <para>For more information, see the Baremetal Installation Guide.</para>
      </section>
      <section id="baremetal-ucs">
        <title>Enhanced Bare Metal Support on Cisco UCS</title>
        <para>You can now more easily provision new Cisco UCS server blades into &PRODUCT; for use
          as bare metal hosts. The goal is to enable easy expansion of the cloud by leveraging the
          programmability of the UCS converged infrastructure and &PRODUCT;’s knowledge of the cloud
          architecture and ability to orchestrate. With this new feature, &PRODUCT; can
          automatically understand the UCS environment, server profiles, etc. to make it easy to
          deploy a bare metal OS on a Cisco UCS.</para>
      </section>
      <section id="update-vm-image">
        <title>Changing a VM's Base Image</title>
        <para>Every VM is created from a base image, which is a template or ISO which has been
          created and stored in &PRODUCT;. Both cloud administrators and end users can create and
          modify templates, ISOs, and VMs.</para>
        <para>In &PRODUCT; 4.2, there is a new way to modify an existing VM. You can change an
          existing VM from one base image to another. For example, suppose there is a template based
          on a particular operating system, and the OS vendor releases a software patch. The
          administrator or user naturally wants to apply the patch and then make sure existing VMs
          start using it. Whether a software update is involved or not, it's also possible to simply
          switch a VM from its current template to any other desired template.</para>
      </section>
      <section id="reset-vm-reboot">
        <title>Reset VM on Reboot</title>
        <para>In &PRODUCT; 4.2, you can specify that you want to discard the root disk and create a
          new one whenever a given VM is rebooted. This is useful for secure environments that need
          a fresh start on every boot and for desktops that should not retain state. The IP address
          of the VM will not change due to this operation.</para>
      </section>
      <section id="vm-snapshots">
        <title>Virtual Machine Snapshots for VMware</title>
        <para>(VMware hosts only) In addition to the existing &PRODUCT; ability to snapshot
          individual VM volumes, you can now take a VM snapshot to preserve all the VM's data
          volumes as well as (optionally) its CPU/memory state. This is useful for quick restore of
          a VM. For example, you can snapshot a VM, then make changes such as software upgrades. If
          anything goes wrong, simply restore the VM to its previous state using the previously
          saved VM snapshot. </para>
        <para>The snapshot is created using the VMware native snapshot facility. The VM snapshot
          includes not only the data volumes, but optionally also whether the VM is running or
          turned off (CPU state) and the memory contents. The snapshot is stored in &PRODUCT;'s
          primary storage.</para>
        <para>VM snapshots can have a parent/child relationship. Each successive snapshot of the
          same VM is the child of the snapshot that came before it. Each time you take an additional
          snapshot of the same VM, it saves only the differences between the current state of the VM
          and the state stored in the most recent previous snapshot. The previous snapshot becomes a
          parent, and the new snapshot is its child. It is possible to create a long chain of these
          parent/child snapshots, which amount to a "redo" record leading from the current state of
          the VM back to the original.</para>
      </section>
      <section id="vm-userdata">
        <title>Increased Userdata Size When Deploying a VM</title>
        <para>You can now specify up to 32KB of userdata when deploying a virtual machine through
          the &PRODUCT; UI or the deployVirtualMachine API call. </para>
      </section>
      <section id="vmware-cluster-limit">
        <title>Set VMware Cluster Size Limit Depending on VMware Version</title>
        <para>The maximum number of hosts in a vSphere cluster is determined by the VMware
          hypervisor software. For VMware versions 4.2, 4.1, 5.0, and 5.1, the limit is 32
          hosts.</para>
        <para>For &PRODUCT; 4.2, the global configuration setting vmware.percluster.host.max has
          been removed. The maximum number of hosts in a VMware cluster is now determined by the
          underlying hypervisor software.</para>
        <note>
          <para>Best Practice: It is advisable for VMware clusters in &PRODUCT; to be smaller than
            the VMware hypervisor's maximum size. A cluster size of up to 8 hosts has been found
            optimal for most real-world situations.</para>
        </note>
      </section>
      <section id="limit-accounts-domains-rn">
        <title>Limiting Resource Usage</title>
        <para>Previously in &PRODUCT;, resource usage limit was imposed based on the resource count,
          that is, restrict a user or domain on the basis of the number of VMs, volumes, or
          snapshots used. In &PRODUCT; 4.2, a new set of resource types has been added to the
          existing pool of resources (VMs, Volumes, and Snapshots) to support the customization
          model&mdash;need-basis usage, such as large VM or small VM. The new resource types are now
          broadly classified as CPU, RAM, Primary storage, and Secondary storage. &PRODUCT; 4.2
          allows the root administrator to impose resource usage limit by the following resource
          types for Domain, Project and Accounts. </para>
        <itemizedlist>
          <listitem>
            <para>CPUs</para>
          </listitem>
          <listitem>
            <para>Memory (RAM)</para>
          </listitem>
          <listitem>
            <para>Primary Storage (Volumes)</para>
          </listitem>
          <listitem>
            <para>Secondary Storage (Snapshots, Templates, ISOs)</para>
          </listitem>
        </itemizedlist>
      </section>
    </section>
    <section id="ops">
      <title>Monitoring, Maintenance, and Operations Enhancements</title>
      <section id="delete-alerts">
        <title>Deleting and Archiving Events and Alerts</title>
        <para>In addition to viewing a list of events and alerts in the UI, the administrator can
          now delete and archive them. In order to support deleting and archiving alerts, the
          following global parameters have been added:</para>
        <itemizedlist>
          <listitem>
            <para><emphasis role="bold">alert.purge.delay</emphasis>: The alerts older than
              specified number of days are purged. Set the value to 0 to never purge alerts
              automatically.</para>
          </listitem>
          <listitem>
            <para><emphasis role="bold">alert.purge.interval</emphasis>: The interval in seconds to
              wait before running the alert purge thread. The default is 86400 seconds (one
              day).</para>
          </listitem>
        </itemizedlist>
        <note>
          <para>Archived alerts or events cannot be viewed in the UI, or by using the API. They are
            maintained in the database for auditing or compliance purposes.</para>
        </note>
      </section>
      <section id="global-parameters">
        <title>Increased Granularity for Configuration Parameters</title>
        <para>Some configuration parameters which were previously available only at the global level
          of the cloud can now be set for smaller components of the cloud, such as at the zone
          level. To set these parameters, look for the new Settings tab in the UI. You will find it
          on the detail page for an account, cluster, zone, or primary storage.</para>
        <para>The account level parameters are: <code>remote.access.vpn.client.iprange</code>,
            <code>allow.public.user.templates</code>, <code>use.system.public.ips</code>, and
            <code>use.system.guest.vlans</code></para>
        <para>The cluster level parameters are
            <code>cluster.storage.allocated.capacity.notificationthreshold</code>,
            <code>cluster.storage.capacity.notificationthreshold</code>,
            <code>cluster.cpu.allocated.capacity.notificationthreshold</code>,
            <code>cluster.memory.allocated.capacity.notificationthreshold</code>, <code>
            cluster.cpu.allocated.capacity.disablethreshold</code>,
            <code>cluster.memory.allocated.capacity.disablethreshold</code>,
            <code>cpu.overprovisioning.factor</code>, <code>mem.overprovisioning.factor</code>,
            <code>vmware.reserve.cpu</code>, and <code>vmware.reserve.mem</code>.</para>
        <para>The zone level parameters are
            <code>pool.storage.allocated.capacity.disablethreshold</code>,
            <code>pool.storage.capacity.disablethreshold</code>,
            <code>storage.overprovisioning.factor</code>, <code>network.throttling.rate</code>,
            <code>guest.domain.suffix</code>, <code>router.template.xen</code>,
            <code>router.template.kvm</code>, <code>router.template.vmware</code>,
            <code>router.template.hyperv</code>, <code>router.template.lx</code>c,
            <code>enable.dynamic.scale.vm</code>, <code>use.external.dns</code>, and
            <code>blacklisted.routes</code>.</para>
      </section>
      <section id="api-request-throttling">
        <title>API Request Throttling</title>
        <para>In &PRODUCT; 4.2, you can limit the rate at which API requests can be placed for each
          account. This is useful to avoid malicious attacks on the Management Server, prevent
          performance degradation, and provide fairness to all accounts.</para>
        <para>If the number of API calls exceeds the threshold, an error message is returned for any
          additional API calls. The caller will have to retry these API calls at another
          time.</para>
        <para>To control the API request throttling, use the following new global configuration
          settings:</para>
        <itemizedlist>
          <listitem>
            <para>api.throttling.enabled - Enable/Disable API throttling. By default, this setting
              is false, so API throttling is not enabled.</para>
          </listitem>
          <listitem>
            <para>api.throttling.interval (in seconds) - Time interval during which the number of
              API requests is to be counted. When the interval has passed, the API count is reset to
              0.</para>
          </listitem>
          <listitem>
            <para>api.throttling.max - Maximum number of APIs that can be placed within the
              api.throttling.interval period.</para>
          </listitem>
          <listitem>
            <para>api.throttling.cachesize - Cache size for storing API counters. Use a value higher
              than the total number of accounts managed by the cloud. One cache entry is needed for
              each account, to store the running API total for that account within the current time
              window.</para>
          </listitem>
        </itemizedlist>
      </section>
      <section id="external-alert-managers">
        <title>Sending Alerts to External SNMP and Syslog Managers</title>
        <para>In addition to showing administrator alerts on the Dashboard in the &PRODUCT; UI and
          sending them in email, &PRODUCT; now can also send the same alerts to external SNMP or
          Syslog management software. This is useful if you prefer to use an SNMP or Syslog manager
          to monitor your cloud.</para>
        <para>The supported protocol is SNMP version 2.</para>
      </section>
      <section id="default-pwd-engine">
        <title>Changing the Default Password Encryption</title>
        <para>Passwords are encoded when creating or updating users. The new default preferred
          encoder, replacing MD5, is SHA256. It is more secure than MD5 hashing. If you take no
          action to customize password encryption and authentication, SHA256 Salt will be
          used.</para>
        <para>If you prefer a different authentication mechanism, &PRODUCT; 4.2 provides a way for
          you to determine the default encoding and authentication mechanism for admin and user
          logins. Two new configurable lists have been introduced: userPasswordEncoders and
          userAuthenticators. userPasswordEncoders allow you to configure the order of preference
          for encoding passwords, and userAuthenticator allows you to configure the order in which
          authentication schemes are invoked to validate user passwords.</para>
        <para>The plain text user authenticator has been modified not to convert supplied passwords
          to their md5 sums before checking them with the database entries. It performs a simple
          string comparison between retrieved and supplied login passwords instead of comparing the
          retrieved md5 hash of the stored password against the supplied md5 hash of the password,
          because clients no longer hash the password.</para>
      </section>
      <section id="cloud-bugtool">
        <title>Log Collection Utility cloud-bugtool</title>
        <para>&PRODUCT; provides a command-line utility called cloud-bugtool to make it easier to
          collect the logs and other diagnostic data required for troubleshooting. This is
          especially useful when interacting with Citrix Technical Support.</para>
        <para>You can use cloud-bugtool to collect the following:</para>
        <itemizedlist>
          <listitem>
            <para>Basic system and environment information and network configuration including IP
              addresses, routing, and name resolver settings </para>
          </listitem>
          <listitem>
            <para>Information about running processes</para>
          </listitem>
          <listitem>
            <para>Management Server logs</para>
          </listitem>
          <listitem>
            <para>System logs in /var/log/</para>
          </listitem>
          <listitem>
            <para>Dump of the cloud database</para>
          </listitem>
        </itemizedlist>
        <warning>
          <para>cloud-bugtool collects information which might be considered sensitive and
            confidential. Using the <code>--nodb</code> option to avoid the cloud database can
            reduce this concern, though it is not guaranteed to exclude all sensitive data.</para>
        </warning>
        <para/>
      </section>
      <section id="rbd-primary-storage">
        <title>Snaphotting, Backups, Cloning and System VMs for RBD Primary Storage</title>
        <note>
          <para>These new RBD features require at least librbd 0.61.7 (Cuttlefish) and libvirt
            0.9.14 on the KVM hypervisors.</para>
        </note>
        <para>This release of &PRODUCT; will leverage the features of RBD format 2. This allows
          snapshotting and backing up those snapshots.</para>
        <para>Backups of snapshots to Secondary Storage are full copies of the RBD snapshot, they
          are not RBD diffs. This because when restoring a backup of a snapshot it is not mandatory
          that this backup is deployed on RBD again, it could also be a NFS Primary Storage.</para>
        <para>Another key feature of RBD format 2 is cloning. With this release templates will be
          copied to Primary Storage once and by using the cloning mechanism new disks will be cloned
          from this parent template. This saves space and decreases deployment time for instances
          dramatically.</para>
        <para>Before this release, a NFS Primary Storage was still required for running the System
          VMs from. The reason was a so called 'patch disk' that was generated by the hypervisor
          which contained metadata for the System VM. The scripts generating this disk didn't
          support RBD and thus System VMs had to be deployed from NFS. With 4.2 instead of the patch
          disk a VirtIO serial console is used to pass meta information to System VMs. This enabled
          the deployment of System VMs on RBD Primary Storage.</para>
      </section>
    </section>
    <section id="issues-fixed-4.2">
      <title>Issues Fixed in 4.2.0</title>
      <para>Apache CloudStack uses <ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK"
          >Jira</ulink> to track its issues. All new features and bugs for 4.2.0 have been tracked
        in Jira, and have a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the
        issue number.</para>
      <para>For list of issues fixed, see <ulink
          url="https://issues.apache.org/jira/issues/?filter=12324870">Issues Fixed in
        4.2</ulink>.</para>
    </section>
    <section id="known-issues-4.2">
      <title>Known Issues in 4.2.0</title>
      <para>This section includes a summary of known issues that were fixed in 4.2.0. For list of
        known issues, see <ulink url="https://issues.apache.org/jira/issues/?filter=12324873">Known
          Issues</ulink>.</para>
    </section>
  </chapter>
  <chapter id="upgrade-instructions">
    <title>Upgrade Instructions for 4.2</title>
    <para>This section contains upgrade instructions from prior versions of CloudStack to Apache
      CloudStack 4.2.0. We include instructions on upgrading to Apache CloudStack from pre-Apache
      versions of Citrix CloudStack (last version prior to Apache is 3.0.2) and from the releases
      made while CloudStack was in the Apache Incubator.</para>
    <para>If you run into any issues during upgrades, please feel free to ask questions on
      users@cloudstack.apache.org or dev@cloudstack.apache.org.</para>
    <section id="upgrade-from-4.0-to-4.1">
      <title>Upgrade from 4.x.x to 4.2.0</title>
      <para>This section will guide you from &PRODUCT; 4.0.x versions to &PRODUCT; 4.2.0.</para>
      <para>Any steps that are hypervisor-specific will be called out with a note.</para>
      <warning>
        <title>Package Structure Changes</title>
        <para>The package structure for &PRODUCT; has changed significantly since the 4.0.x
          releases. If you've compiled your own packages, you'll notice that the package names and
          the number of packages has changed. This is <emphasis>not</emphasis> a bug.</para>
        <para>However, this does mean that the procedure is not as simple as an <command>apt-get
            upgrade</command> or <command>yum update</command>, so please follow this section
          carefully.</para>
      </warning>
      <para>We recommend reading through this section once or twice before beginning your upgrade
        procedure, and working through it on a test system before working on a production
        system.</para>
      <orderedlist>
        <listitem>
          <para>Most users of &PRODUCT; manage the installation and upgrades of &PRODUCT; with one
            of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using
            RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for
            Ubuntu).</para>
        </listitem>
        <listitem>
          <para>Create RPM or Debian packages (as appropriate) and a repository from the 4.2.0
            source, or check the Apache CloudStack downloads page at <ulink
              url="http://cloudstack.apache.org/downloads.html"
              >http://cloudstack.apache.org/downloads.html</ulink> for package repositories supplied
            by community members. You will need them for step <xref linkend="upgrade-deb-packages"/>
            or step <xref linkend="upgrade-rpm-packages"/>.</para>
          <para>Instructions for creating packages from the &PRODUCT; source are in the <ulink
              url="http://cloudstack.apache.org/docs/en-US/index.html">Installation
            Guide</ulink>.</para>
        </listitem>
        <listitem>
          <para>Stop your management server or servers. Run this on all management server
            hosts:</para>
          <programlisting><prompt>#</prompt> service cloud-management stop</programlisting>
        </listitem>
        <listitem>
          <para>If you are running a usage server or usage servers, stop those as well:</para>
          <programlisting><prompt>#</prompt> service cloud-usage stop</programlisting>
        </listitem>
        <listitem>
          <para>Make a backup of your MySQL database. If you run into any issues or need to roll
            back the upgrade, this will assist in debugging or restoring your existing environment.
            You'll be prompted for your password.</para>
          <programlisting><prompt>#</prompt> mysqldump -u root -p cloud &gt; cloudstack-backup.sql</programlisting>
        </listitem>
        <listitem>
          <para>If you have made changes to
              <filename>/etc/cloud/management/components.xml</filename>, you'll need to carry these
            over manually to the new file,
              <filename>/etc/cloudstack/management/componentContext.xml</filename>. This is not done
            automatically. (If you're unsure, we recommend making a backup of the original
              <filename>components.xml</filename> to be on the safe side.</para>
        </listitem>
        <listitem>
          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
            login and user creation, instead of MD5 hash. If API client changes are not acceptable,
            following changes are to be made for backward compatibility:</para>
          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
          <programlisting language="XML">
&lt;!-- Security adapters --&gt;
&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
  &lt;property name="Adapters"&gt;
    &lt;list&gt;
      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
      &lt;ref bean="MD5UserAuthenticator"/&gt;
      &lt;ref bean="LDAPUserAuthenticator"/&gt;
    &lt;/list&gt;
  &lt;/property&gt;
&lt;/bean&gt;
            </programlisting>
          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
            4.2.</para>
        </listitem>
        <listitem id="upgrade-deb-packages">
          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
            skip to step <xref linkend="upgrade-rpm-packages"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and APT repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist id="debsteps">
            <listitem>
              <para>The first order of business will be to change the sources list for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. (No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
                any systems that have &PRODUCT; packages installed.</para>
              <para>This file should have one line, which contains:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
              <para>We'll change it to point to the new package repository:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem>
              <para>Now update your apt package list:</para>
              <programlisting language="Bash">$ sudo apt-get update</programlisting>
            </listitem>
            <listitem id="deb-master">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package. This will pull in any other
                dependencies you need.</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
            </listitem>
            <listitem id="kvm-agent-deb">
              <para>You will need to manually install the <filename>cloudstack-agent</filename>
                package:</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
                and <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
                            </programlisting>
            </listitem>
            <listitem>
              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
                so the logs will continue to be added to
                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
                change this by copying over the sample configuration file:</para>
              <programlisting language="Bash">
cd /etc/cloudstack/agent
mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
service cloudstack-agent restart
                            </programlisting>
            </listitem>
            <listitem>
              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
                system:</para>
              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>(VMware only) Additional steps are required for each VMware cluster. These steps
            will not affect running guests in the cloud. These steps are required only for clouds
            using VMware clusters:</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Stop the Management Server:</para>
              <programlisting>service cloudstack-management stop</programlisting>
            </listitem>
            <listitem>
              <para>Generate the encrypted equivalent of your vCenter password:</para>
              <programlisting>java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_" password="`cat /etc/cloudstack/management/key`" verbose=false</programlisting>
              <para>Store the output from this step, we need to add this in cluster_details table
                and vmware_data_center tables in place of the plain text password</para>
            </listitem>
            <listitem>
              <para>Find the ID of the row of cluster_details table that you have to update:</para>
              <programlisting>mysql -u &lt;username&gt; -p&lt;password&gt;</programlisting>
              <programlisting>select * from cloud.cluster_details;</programlisting>
            </listitem>
            <listitem>
              <para>Update the plain text password with the encrypted one</para>
              <programlisting>update cloud.cluster_details set value = '_ciphertext_from_step_1_' where id = _id_from_step_2_;</programlisting>
            </listitem>
            <listitem>
              <para>Confirm that the table is updated:</para>
              <programlisting>select * from cloud.cluster_details; </programlisting>
            </listitem>
            <listitem>
              <para>Find the ID of the correct row of vmware_data_center that you want to
                update</para>
              <programlisting>select * from cloud.vmware_data_center; </programlisting>
            </listitem>
            <listitem>
              <para>update the plain text password with the encrypted one:</para>
              <programlisting>update cloud.vmware_data_center set password = '_ciphertext_from_step_1_' where id = _id_from_step_5_; </programlisting>
            </listitem>
            <listitem>
              <para>Confirm that the table is updated:</para>
              <programlisting>select * from cloud.vmware_data_center; </programlisting>
            </listitem>
            <listitem>
              <para>Start the &PRODUCT; Management server </para>
              <programlisting>service cloudstack-management start</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>(KVM only) Additional steps are required for each KVM host. These steps will not
            affect running guests in the cloud. These steps are required only for clouds using KVM
            as hosts and only on the KVM hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Manually clean up <filename>/var/cache/cloudstack</filename>.</para>
            </listitem>
            <listitem>
              <para>Copy the 4.2 tar file to the host, untar it, and change directory to the
                resulting directory.</para>
            </listitem>
            <listitem>
              <para>Stop the running agent.</para>
              <programlisting># service cloud-agent stop</programlisting>
            </listitem>
            <listitem>
              <para>Update the agent software.</para>
              <programlisting># ./install.sh</programlisting>
            </listitem>
            <listitem>
              <para>Choose "U" to update the packages.</para>
            </listitem>
            <listitem>
              <para>Start the agent.</para>
              <programlisting># service cloudstack-agent start</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="upgrade-rpm-packages">
          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
            not, skip to step <xref linkend="restart-system-vms"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and yum repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist id="rpmsteps">
            <listitem>
              <para>The first order of business will be to change the yum repository for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. </para>
              <para>(No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
                systems that have &PRODUCT; packages installed.</para>
              <para>This file should have content similar to the following:</para>
              <programlisting language="Bash">
[apache-cloudstack]
name=Apache CloudStack
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
enabled=1
gpgcheck=0
                            </programlisting>
              <para>If you are using the community provided package repository, change the base url
                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem id="rpm-master">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package by upgrading the older
                  <filename>cloud-client</filename> package.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
            </listitem>
            <listitem id="kvm-agent-rpm">
              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
                package, similarly installing the new version as
                  <filename>cloudstack-agent</filename>.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
                copy your <filename>agent.properties</filename>,
                  <filename>log4j-cloud.xml</filename>, and
                  <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
            </listitem>
            <listitem>
              <para>For CentOS 5.5, perform the following:</para>
              <orderedlist>
                <listitem>
                  <para>Run the following command:</para>
                  <programlisting>rpm -Uvh http://download.cloud.com/support/jsvc/jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm</programlisting>
                </listitem>
                <listitem>
                  <para>Upgrade the Usage server.</para>
                  <programlisting>sudo yum upgrade cloud-usage</programlisting>
                </listitem>
              </orderedlist>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
                            </programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="restart-system-vms">
          <para>Once you've upgraded the packages on your management servers, you'll need to restart
            the system VMs. Make sure port 8096 is open in your local host firewall to do
            this.</para>
          <para>There is a script that will do this for you, all you need to do is run the script
            and supply the IP address for your MySQL instance and your MySQL credentials:</para>
          <programlisting language="Bash"><prompt>#</prompt> nohup cloudstack-sysvmadm -d <replaceable>IP address</replaceable> -u cloud -p -a &gt; sysvm.log 2&gt;&amp;1 &amp;</programlisting>
          <para>You can monitor the log for progress. The process of restarting the system VMs can
            take an hour or more.</para>
          <programlisting language="Bash"><prompt>#</prompt> tail -f sysvm.log</programlisting>
          <para>The output to <filename>sysvm.log</filename> will look something like this:</para>
          <programlisting language="Bash">
Stopping and starting 1 secondary storage vm(s)...
Done stopping and starting secondary storage vm(s)
Stopping and starting 1 console proxy vm(s)...
Done stopping and starting console proxy vm(s).
Stopping and starting 4 running routing vm(s)...
Done restarting router(s).
                    </programlisting>
        </listitem>
        <listitem>
          <note>
            <title>For Xen Hosts: Copy vhd-utils</title>
            <para>This step is only for CloudStack installs that are using Xen hosts.</para>
          </note>
          <para>Copy the file <filename>vhd-utils</filename> to
              <filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</filename>.</para>
        </listitem>
      </orderedlist>
    </section>
    <section id="upgrade-from-3.0.2-to-4.0">
      <title>Upgrade from 3.0.2 to 4.2.0</title>
      <para>This section will guide you from Citrix CloudStack 3.0.2 to Apache CloudStack 4.2.0.
        Sections that are hypervisor-specific will be called out with a note.</para>
      <orderedlist>
        <listitem>
          <note>
            <para>The following upgrade instructions apply only if you're using VMware hosts. If
              you're not using VMware hosts, skip this step and move on to <xref
                linkend="stopping-usage-servers"/>.</para>
          </note>
          <para>In each zone that includes VMware hosts, you need to add a new system VM template. </para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>While running the existing 3.0.2 system, log in to the UI as root
                administrator.</para>
            </listitem>
            <listitem>
              <para>In the left navigation bar, click Templates.</para>
            </listitem>
            <listitem>
              <para>In Select view, click Templates.</para>
            </listitem>
            <listitem>
              <para>Click Register template.</para>
              <para>The Register template dialog box is displayed.</para>
            </listitem>
            <listitem>
              <para>In the Register template dialog box, specify the following values (do not change
                these):</para>
              <informaltable>
                <tgroup cols="2" align="left" colsep="1" rowsep="1">
                  <colspec colwidth="1*" colname="1" colnum="1"/>
                  <colspec colwidth="2*" colname="2" colnum="2"/>
                  <thead>
                    <row>
                      <entry><para>Field</para></entry>
                      <entry><para>Value</para></entry>
                    </row>
                  </thead>
                  <tbody>
                    <row>
                      <entry><para>Name</para></entry>
                      <entry><para>systemvm-vmware-4.2</para></entry>
                    </row>
                    <row>
                      <entry><para>Description</para></entry>
                      <entry><para>systemvm-vmware-4.2</para></entry>
                    </row>
                    <row>
                      <entry><para>URL</para></entry>
                      <entry><para>http://download.cloud.com/templates/burbank/burbank-systemvm-08012012.ova</para></entry>
                    </row>
                    <row>
                      <entry><para>Zone</para></entry>
                      <entry><para>Choose the zone where this hypervisor is used</para></entry>
                    </row>
                    <row>
                      <entry><para>Hypervisor</para></entry>
                      <entry><para>VMware</para></entry>
                    </row>
                    <row>
                      <entry><para>Format</para></entry>
                      <entry><para>OVA</para></entry>
                    </row>
                    <row>
                      <entry><para>OS Type</para></entry>
                      <entry><para>Debian GNU/Linux 5.0 (32-bit)</para></entry>
                    </row>
                    <row>
                      <entry><para>Extractable</para></entry>
                      <entry><para>no</para></entry>
                    </row>
                    <row>
                      <entry><para>Password Enabled</para></entry>
                      <entry><para>no</para></entry>
                    </row>
                    <row>
                      <entry><para>Public</para></entry>
                      <entry><para>no</para></entry>
                    </row>
                    <row>
                      <entry><para>Featured</para></entry>
                      <entry><para>no</para></entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </listitem>
            <listitem>
              <para>Watch the screen to be sure that the template downloads successfully and enters
                the READY state. Do not proceed until this is successful.</para>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="stopping-usage-servers">
          <para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloud-usage stop</programlisting>
        </listitem>
        <listitem>
          <para>Stop the Management Servers. Run this on all Management Server hosts.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
        </listitem>
        <listitem>
          <para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
            this step even in test upgrades. If there is an issue, this will assist with
            debugging.</para>
          <para>In the following commands, it is assumed that you have set the root password on the
            database, which is a CloudStack recommended best practice. Substitute your own MySQL
            root password.</para>
          <programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
                        <prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename></programlisting>
        </listitem>
        <listitem>
          <para>Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
            the community provided yum/apt repositories to gain access to the &PRODUCT;
            binaries.</para>
        </listitem>
        <listitem id="upgrade-deb-packages-302">
          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
            skip to step <xref linkend="upgrade-rpm-packages-302"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and APT repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist numeration="loweralpha" id="debsteps-302">
            <listitem>
              <para>The first order of business will be to change the sources list for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. (No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
                any systems that have &PRODUCT; packages installed.</para>
              <para>This file should have one line, which contains:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
              <para>We'll change it to point to the new package repository:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem>
              <para>Now update your apt package list:</para>
              <programlisting language="Bash">$ sudo apt-get update</programlisting>
            </listitem>
            <listitem id="deb-master-302">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package. This will pull in any other
                dependencies you need.</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
            </listitem>
            <listitem id="kvm-agent-deb-302">
              <para>You will need to manually install the <filename>cloudstack-agent</filename>
                package:</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
                and <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
                            </programlisting>
            </listitem>
            <listitem>
              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
                so the logs will continue to be added to
                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
                change this by copying over the sample configuration file:</para>
              <programlisting language="Bash">
cd /etc/cloudstack/agent
mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
service cloudstack-agent restart
                            </programlisting>
            </listitem>
            <listitem>
              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
                system:</para>
              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>(KVM only) Additional steps are required for each KVM host. These steps will not
            affect running guests in the cloud. These steps are required only for clouds using KVM
            as hosts and only on the KVM hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Copy the CloudPlatform 4.2 tar file to the host, untar it, and change directory
                to the resulting directory.</para>
            </listitem>
            <listitem>
              <para>Stop the running agent.</para>
              <programlisting># service cloud-agent stop</programlisting>
            </listitem>
            <listitem>
              <para>Update the agent software.</para>
              <programlisting># ./install.sh</programlisting>
            </listitem>
            <listitem>
              <para>Choose "U" to update the packages.</para>
            </listitem>
            <listitem>
              <para>Start the agent.</para>
              <programlisting># service cloudstack-agent start</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="upgrade-rpm-packages-302">
          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
            not, skip to step <xref linkend="correct-components-xml-302"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and yum repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist id="rpmsteps-302">
            <listitem>
              <para>The first order of business will be to change the yum repository for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. (No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
                systems that have &PRODUCT; packages installed.</para>
              <para>This file should have content similar to the following:</para>
              <programlisting language="Bash">
[apache-cloudstack]
name=Apache CloudStack
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
enabled=1
gpgcheck=0
                            </programlisting>
              <para>If you are using the community provided package repository, change the baseurl
                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem id="rpm-master-302">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package by upgrading the older
                  <filename>cloud-client</filename> package.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
            </listitem>
            <listitem id="kvm-agent-rpm-302">
              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
                package, similarly installing the new version as
                  <filename>cloudstack-agent</filename>.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
                copy your <filename>agent.properties</filename>,
                  <filename>log4j-cloud.xml</filename>, and
                  <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
                            </programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="correct-components-xml-302">
          <para>If you have made changes to your copy of
              <filename>/etc/cloud/management/components.xml</filename> the changes will be
            preserved in the upgrade. However, you need to do the following steps to place these
            changes in a new version of the file which is compatible with version 4.2.0.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Make a backup copy of <filename>/etc/cloud/management/components.xml</filename>.
                For example:</para>
              <programlisting># mv /etc/cloud/management/components.xml /etc/cloud/management/components.xml-backup</programlisting>
            </listitem>
            <listitem>
              <para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
                a new <filename>/etc/cloud/management/components.xml</filename>:</para>
              <programlisting># cp -ap /etc/cloud/management/components.xml.rpmnew /etc/cloud/management/components.xml</programlisting>
            </listitem>
            <listitem>
              <para>Merge your changes from the backup file into the new
                  <filename>components.xml</filename>.</para>
              <programlisting># vi /etc/cloudstack/management/components.xml</programlisting>
            </listitem>
          </orderedlist>
          <note>
            <para>If you have more than one management server node, repeat the upgrade steps on each
              node.</para>
          </note>
        </listitem>
        <listitem>
          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
            login and user creation, instead of MD5 hash. Incase, api client changes are not
            acceptable, following changes are to be made for backward compatibility:</para>
          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
          <programlisting language="XML">
&lt;!-- Security adapters --&gt;
&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
  &lt;property name="Adapters"&gt;
    &lt;list&gt;
      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
      &lt;ref bean="MD5UserAuthenticator"/&gt;
      &lt;ref bean="LDAPUserAuthenticator"/&gt;
    &lt;/list&gt;
  &lt;/property&gt;
&lt;/bean&gt;
            </programlisting>
          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
            4.2.</para>
        </listitem>
        <listitem>
          <para>Start the first Management Server. Do not start any other Management Server nodes
            yet.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
          <para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
            After confirmation, start the other Management Servers one at a time by running the same
            command on each node.</para>
          <note>
            <para>Failing to restart the Management Server indicates a problem in the upgrade.
              Having the Management Server restarted without any issues indicates that the upgrade
              is successfully completed.</para>
          </note>
        </listitem>
        <listitem>
          <para>Start all Usage Servers (if they were running on your previous version). Perform
            this on each Usage Server host.</para>
          <para><command># service cloudstack-usage start</command></para>
        </listitem>
        <listitem>
          <para>Additional steps are required for each KVM host. These steps will not affect running
            guests in the cloud. These steps are required only for clouds using KVM as hosts and
            only on the KVM hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Configure a yum or apt repository containing the &PRODUCT; packages as outlined
                in the Installation Guide.</para>
            </listitem>
            <listitem>
              <para>Stop the running agent.</para>
              <para><command># service cloud-agent stop</command></para>
            </listitem>
            <listitem>
              <para>Update the agent software with one of the following command sets as appropriate
                for your environment.</para>
              <para><command># yum update cloud-*</command></para>
              <para><command># apt-get update</command></para>
              <para><command># apt-get upgrade cloud-*</command></para>
            </listitem>
            <listitem>
              <para>Edit <filename>/etc/cloudstack/agent/agent.properties</filename> to change the
                resource parameter from
                "com.cloud.agent.resource.computing.LibvirtComputingResource" to
                "com.cloud.hypervisor.kvm.resource.LibvirtComputingResource".</para>
            </listitem>
            <listitem>
              <para>Start the cloud agent and cloud management services.</para>
              <programlisting># service cloudstack-agent start</programlisting>
            </listitem>
            <listitem>
              <para>When the Management Server is up and running, log in to the CloudStack UI and
                restart the virtual router for proper functioning of all the features.</para>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>Log in to the CloudStack UI as administrator, and check the status of the hosts. All
            hosts should come to Up state (except those that you know to be offline). You may need
            to wait 20 or 30 minutes, depending on the number of hosts.</para>
          <note>
            <para>Troubleshooting: If login fails, clear your browser cache and reload the
              page.</para>
          </note>
          <para>Do not proceed to the next step until the hosts show in Up state.</para>
        </listitem>
        <listitem>
          <para>If you are upgrading from 3.0.2, perform the following:</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Ensure that the admin port is set to 8096 by using the "integration.api.port"
                global parameter.</para>
              <para>This port is used by the cloud-sysvmadm script at the end of the upgrade
                procedure. For information about how to set this parameter, see "Setting Global
                Configuration Parameters" in the Installation Guide.</para>
            </listitem>
            <listitem>
              <para>Restart the Management Server.</para>
              <note>
                <para>If you don't want the admin port to remain open, you can set it to null after
                  the upgrade is done and restart the management server.</para>
              </note>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>Run the <command>cloud-sysvmadm</command> script to stop, then start, all Secondary
            Storage VMs, Console Proxy VMs, and virtual routers. Run the script once on each
            management server. Substitute your own IP address of the MySQL instance, the MySQL user
            to connect as, and the password to use for that user. In addition to those parameters,
            provide the <command>-c</command> and <command>-r</command> arguments. For
            example:</para>
          <para><command># nohup cloud-sysvmadm -d 192.168.1.5 -u cloud -p password -c -r >
              sysvm.log 2>&amp;1 &amp;</command></para>
          <para><command># tail -f sysvm.log</command></para>
          <para>This might take up to an hour or more to run, depending on the number of accounts in
            the system.</para>
        </listitem>
        <listitem>
          <para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
            supported by CloudStack 4.2.0. The supported versions are XenServer 5.6 SP2 and 6.0.2.
            Instructions for upgrade can be found in the CloudStack 4.2.0 Installation Guide under
            "Upgrading XenServer Versions."</para>
        </listitem>
        <listitem>
          <para>Now apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to
            XenServer v6.0.2 hypervisor hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Disconnect the XenServer cluster from CloudStack.</para>
              <para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
                Clusters, click View All. Select the XenServer cluster and click Actions -
                Unmanage.</para>
              <para>This may fail if there are hosts not in one of the states Up, Down,
                Disconnected, or Alert. You may need to fix that before unmanaging this
                cluster.</para>
              <para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
                UI to check on the status. When the cluster is in the unmanaged state, there is no
                connection to the hosts in the cluster.</para>
            </listitem>
            <listitem>
              <para>To clean up the VLAN, log in to one XenServer host and run:</para>
              <para><command>/opt/xensource/bin/cloud-clean-vlan.sh</command></para>
            </listitem>
            <listitem>
              <para>Now prepare the upgrade by running the following on one XenServer host:</para>
              <para><command>/opt/xensource/bin/cloud-prepare-upgrade.sh</command></para>
              <para>If you see a message like "can't eject CD", log in to the VM and unmount the CD,
                then run this script again.</para>
            </listitem>
            <listitem>
              <para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
                then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
                hotfixes to the host. Place them in a temporary folder such as /tmp. </para>
              <para>On the Xen pool master, upload the hotfix with this command:</para>
              <para><command>xe patch-upload file-name=XS602E003.xsupdate</command></para>
              <para>Make a note of the output from this command, which is a UUID for the hotfix
                file. You'll need it in another step later.</para>
              <note>
                <para>(Optional) If you are applying other hotfixes as well, you can repeat the
                  commands in this section with the appropriate hotfix number. For example,
                  XS602E004.xsupdate.</para>
              </note>
            </listitem>
            <listitem>
              <para>Manually live migrate all VMs on this host to another host. First, get a list of
                the VMs on this host:</para>
              <para><command># xe vm-list</command></para>
              <para>Then use this command to migrate each VM. Replace the example host name and VM
                name with your own:</para>
              <para><command># xe vm-migrate live=true host=<replaceable>host-name</replaceable>
                    vm=<replaceable>VM-name</replaceable></command></para>
              <note>
                <title>Troubleshooting</title>
                <para>If you see a message like "You attempted an operation on a VM which requires
                  PV drivers to be installed but the drivers were not detected," run:</para>
                <para><command>/opt/xensource/bin/make_migratable.sh
                    b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
              </note>
            </listitem>
            <listitem>
              <para>Apply the hotfix. First, get the UUID of this host:</para>
              <programlisting># xe host-list</programlisting>
              <para>Then use the following command to apply the hotfix. Replace the example host
                UUID with the current host ID, and replace the hotfix UUID with the output from the
                patch-upload command you ran on this machine earlier. You can also get the hotfix
                UUID by running xe patch-list. </para>
              <programlisting><command>xe</command> patch-apply host-uuid=<replaceable>host-uuid</replaceable> uuid=<replaceable>hotfix-uuid</replaceable></programlisting>
            </listitem>
            <listitem>
              <para>Copy the following files from the CloudStack Management Server to the
                host.</para>
              <informaltable>
                <tgroup cols="2" align="left" colsep="1" rowsep="1">
                  <colspec colwidth="1*" colname="1" colnum="1"/>
                  <colspec colwidth="2*" colname="2" colnum="2"/>
                  <thead>
                    <row>
                      <entry><para>Copy from here...</para></entry>
                      <entry><para>...to here</para></entry>
                    </row>
                  </thead>
                  <tbody>
                    <row>
                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</para></entry>
                      <entry><para>/opt/xensource/sm/NFSSR.py</para></entry>
                    </row>
                    <row>
                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</para></entry>
                      <entry><para>/opt/xensource/bin/setupxenserver.sh</para></entry>
                    </row>
                    <row>
                      <entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/make_migratable.sh</para></entry>
                      <entry><para>/opt/xensource/bin/make_migratable.sh</para></entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </listitem>
            <listitem>
              <para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
                Support Pack.</para>
              <itemizedlist>
                <listitem>
                  <para>Download the CSP software onto the XenServer host from one of the following
                    links:</para>
                  <para>For hotfix XS602E005: <ulink
                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
                  <para>For hotfix XS602E007: <ulink
                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
                </listitem>
                <listitem>
                  <para>Extract the file:</para>
                  <programlisting># tar xf xenserver-cloud-supp.tgz</programlisting>
                </listitem>
                <listitem>
                  <para>Run the following script:</para>
                  <programlisting># xe-install-supplemental-pack xenserver-cloud-supp.iso</programlisting>
                </listitem>
                <listitem>
                  <para>If the XenServer host is part of a zone that uses basic networking, disable
                    Open vSwitch (OVS):</para>
                  <programlisting># xe-switch-network-backend  bridge</programlisting>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para>Reboot this XenServer host.</para>
            </listitem>
            <listitem>
              <para>Run the following:</para>
              <programlisting>/opt/xensource/bin/setupxenserver.sh</programlisting>
              <note>
                <para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
                  directory" appears, you can safely ignore it.</para>
              </note>
            </listitem>
            <listitem>
              <para>Run the following:</para>
              <programlisting>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; </programlisting>
            </listitem>
            <listitem>
              <para>On each slave host in the Xen pool, repeat these steps, starting from "manually
                live migrate VMs."</para>
            </listitem>
          </orderedlist>
        </listitem>
      </orderedlist>
      <note>
        <title>Troubleshooting Tip</title>
        <para>If passwords which you know to be valid appear not to work after upgrade, or other UI
          issues are seen, try clearing your browser cache and reloading the UI page.</para>
      </note>
    </section>
    <section id="upgrade-from-2.2.x-to-4.1">
      <title>Upgrade from 2.2.14 to 4.2.0</title>
      <orderedlist>
        <listitem>
          <para>Ensure that you query your IPaddress usage records and process them; for example,
            issue invoices for any usage that you have not yet billed users for.</para>
          <para>Starting in 3.0.2, the usage record format for IP addresses is the same as the rest
            of the usage types. Instead of a single record with the assignment and release dates,
            separate records are generated per aggregation period with start and end dates. After
            upgrading to 4.2.0, any existing IP address usage records in the old format will no
            longer be available.</para>
        </listitem>
        <listitem>
          <para>If you are using version 2.2.0 - 2.2.13, first upgrade to 2.2.14 by using the
            instructions in the <ulink
              url="http://download.cloud.com/releases/2.2.0/CloudStack2.2.14ReleaseNotes.pdf">2.2.14
              Release Notes</ulink>.</para>
          <warning>
            <title>KVM Hosts</title>
            <para>If KVM hypervisor is used in your cloud, be sure you completed the step to insert
              a valid username and password into the host_details table on each KVM node as
              described in the 2.2.14 Release Notes. This step is critical, as the database will be
              encrypted after the upgrade to 4.2.0.</para>
          </warning>
        </listitem>
        <listitem>
          <para>While running the 2.2.14 system, log in to the UI as root administrator.</para>
        </listitem>
        <listitem>
          <para>Using the UI, add a new System VM template for each hypervisor type that is used in
            your cloud. In each zone, add a system VM template for each hypervisor used in that
            zone</para>
          <orderedlist>
            <listitem>
              <para>In the left navigation bar, click Templates.</para>
            </listitem>
            <listitem>
              <para>In Select view, click Templates.</para>
            </listitem>
            <listitem>
              <para>Click Register template.</para>
              <para>The Register template dialog box is displayed.</para>
            </listitem>
            <listitem>
              <para>In the Register template dialog box, specify the following values depending on
                the hypervisor type (do not change these):</para>
              <informaltable>
                <tgroup cols="2" align="left" colsep="1" rowsep="1">
                  <colspec colwidth="1*" colname="1" colnum="1"/>
                  <colspec colwidth="2*" colname="2" colnum="2"/>
                  <thead>
                    <row>
                      <entry><para>Hypervisor</para></entry>
                      <entry><para>Description</para></entry>
                    </row>
                  </thead>
                  <tbody>
                    <row>
                      <entry><para>XenServer</para></entry>
                      <entry><para>Name: systemvm-xenserver-4.2.0</para>
                        <para>Description: systemvm-xenserver-4.2.0</para>
                        <para>URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 </para>
                        <para>Zone: Choose the zone where this hypervisor is used</para>
                        <para>Hypervisor: XenServer</para>
                        <para>Format: VHD</para>
                        <para>OS Type: Debian GNU/Linux 6.0 (32-bit)</para>
                        <para>Extractable: no</para>
                        <para>Password Enabled: no</para>
                        <para>Public: no</para>
                        <para>Featured: no</para>
                      </entry>
                    </row>
                    <row>
                      <entry><para>KVM</para></entry>
                      <entry><para>Name: systemvm-kvm-4.2.0</para>
                        <para>Description: systemvm-kvm-4.2.0</para>
                        <para>URL:
                          http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2</para>
                        <para>Zone: Choose the zone where this hypervisor is used</para>
                        <para>Hypervisor: KVM</para>
                        <para>Format: QCOW2</para>
                        <para>OS Type: Debian GNU/Linux 5.0 (32-bit)</para>
                        <para>Extractable: no</para>
                        <para>Password Enabled: no</para>
                        <para>Public: no</para>
                        <para>Featured: no</para>
                      </entry>
                    </row>
                    <row>
                      <entry><para>VMware</para></entry>
                      <entry><para>Name: systemvm-vmware-4.2.0</para>
                        <para>Description: systemvm-vmware-4.2.0</para>
                        <para>URL:
                          http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova</para>
                        <para>Zone: Choose the zone where this hypervisor is used</para>
                        <para>Hypervisor: VMware</para>
                        <para>Format: OVA</para>
                        <para>OS Type: Debian GNU/Linux 5.0 (32-bit)</para>
                        <para>Extractable: no</para>
                        <para>Password Enabled: no</para>
                        <para>Public: no</para>
                        <para>Featured: no</para>
                      </entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>Watch the screen to be sure that the template downloads successfully and enters the
            READY state. Do not proceed until this is successful</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">WARNING</emphasis>: If you use more than one type of
            hypervisor in your cloud, be sure you have repeated these steps to download the system
            VM template for each hypervisor type. Otherwise, the upgrade will fail.</para>
        </listitem>
        <listitem>
          <para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
          <programlisting># service cloud-usage stop</programlisting>
        </listitem>
        <listitem>
          <para>Stop the Management Servers. Run this on all Management Server hosts.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
        </listitem>
        <listitem>
          <para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
            this step even in test upgrades. If there is an issue, this will assist with
            debugging.</para>
          <para>In the following commands, it is assumed that you have set the root password on the
            database, which is a CloudStack recommended best practice. Substitute your own MySQL
            root password.</para>
          <programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
                        <prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename>
                    </programlisting>
        </listitem>
        <listitem>
          <para> Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
            the community provided yum/apt repositories to gain access to the &PRODUCT; binaries.
          </para>
        </listitem>
        <listitem id="upgrade-deb-packages-22">
          <para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
            skip to step <xref linkend="upgrade-rpm-packages-22"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and APT repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist id="debsteps-22">
            <listitem>
              <para>The first order of business will be to change the sources list for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. (No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
                any systems that have &PRODUCT; packages installed.</para>
              <para>This file should have one line, which contains:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
              <para>We'll change it to point to the new package repository:</para>
              <programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem>
              <para>Now update your apt package list:</para>
              <programlisting language="Bash">$ sudo apt-get update</programlisting>
            </listitem>
            <listitem id="deb-master-22">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package. This will pull in any other
                dependencies you need.</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
            </listitem>
            <listitem id="kvm-agent-deb-22">
              <para>On KVM hosts, you will need to manually install the
                  <filename>cloudstack-agent</filename> package:</para>
              <programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
                your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
                and <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
              <para>When prompted whether you wish to keep your configuration, say Yes.</para>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
              </programlisting>
            </listitem>
            <listitem>
              <para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
                so the logs will continue to be added to
                  <filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
                  <emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
                change this by copying over the sample configuration file:</para>
              <programlisting language="Bash">
cd /etc/cloudstack/agent
mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
service cloudstack-agent restart
                            </programlisting>
            </listitem>
            <listitem>
              <para>Once the agent is running, you can uninstall the old cloud-* packages from your
                system:</para>
              <programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="upgrade-rpm-packages-22">
          <para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
            not, skip to step <xref linkend="correct-components-xml-22"/>.</para>
          <note>
            <title>Community Packages</title>
            <para>This section assumes you're using the community supplied packages for &PRODUCT;.
              If you've created your own packages and yum repository, substitute your own URL for
              the ones used in these examples.</para>
          </note>
          <orderedlist id="rpmsteps-22">
            <listitem>
              <para>The first order of business will be to change the yum repository for each system
                with &PRODUCT; packages. This means all management servers, and any hosts that have
                the KVM agent. (No changes should be necessary for hosts that are running VMware or
                Xen.)</para>
              <para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
                systems that have &PRODUCT; packages installed.</para>
              <para>This file should have content similar to the following:</para>
              <programlisting language="Bash">
[apache-cloudstack]
name=Apache CloudStack
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
enabled=1
gpgcheck=0
                            </programlisting>
              <para>If you are using the community provided package repository, change the baseurl
                to http://cloudstack.apt-get.eu/rhel/4.2/</para>
              <para>If you're using your own package repository, change this line to read as
                appropriate for your 4.2.0 repository.</para>
            </listitem>
            <listitem id="rpm-master-22">
              <para>Now that you have the repository configured, it's time to install the
                  <filename>cloudstack-management</filename> package by upgrading the older
                  <filename>cloud-client</filename> package.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
            </listitem>
            <listitem id="kvm-agent-rpm-22">
              <para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
                package, similarly installing the new version as
                  <filename>cloudstack-agent</filename>.</para>
              <programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
              <para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
                copy your <filename>agent.properties</filename>,
                  <filename>log4j-cloud.xml</filename>, and
                  <filename>environment.properties</filename> from
                  <filename>/etc/cloud/agent</filename> to
                  <filename>/etc/cloudstack/agent</filename>.</para>
            </listitem>
            <listitem>
              <para>Verify that the file
                  <filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
                reads:</para>
              <programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
              <para>If not, add the line.</para>
            </listitem>
            <listitem>
              <para>Restart the agent:</para>
              <programlisting language="Bash">
service cloud-agent stop
killall jsvc
service cloudstack-agent start
                            </programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem id="correct-components-xml-22">
          <para>If you have made changes to your existing copy of the file components.xml in your
            previous-version CloudStack installation, the changes will be preserved in the upgrade.
            However, you need to do the following steps to place these changes in a new version of
            the file which is compatible with version 4.0.0-incubating.</para>
          <note>
            <para>How will you know whether you need to do this? If the upgrade output in the
              previous step included a message like the following, then some custom content was
              found in your old components.xml, and you need to merge the two files:</para>
          </note>
          <programlisting>warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew </programlisting>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Make a backup copy of your
                  <filename>/etc/cloud/management/components.xml</filename> file. For
                example:</para>
              <programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/components.xml</filename> <filename>/etc/cloud/management/components.xml-backup</filename></programlisting>
            </listitem>
            <listitem>
              <para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
                a new <filename>/etc/cloud/management/components.xml</filename>:</para>
              <programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/components.xml.rpmnew</filename> <filename>/etc/cloud/management/components.xml</filename></programlisting>
            </listitem>
            <listitem>
              <para>Merge your changes from the backup file into the new components.xml file.</para>
              <programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloud/management/components.xml</filename>
                            </programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>After upgrading to 4.2, API clients are expected to send plain text passwords for
            login and user creation, instead of MD5 hash. If API client changes are not acceptable,
            following changes are to be made for backward compatibility:</para>
          <para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
            authenticator (1st entry in the userAuthenticators adapter list is default)</para>
          <programlisting language="XML">
&lt;!-- Security adapters --&gt;
&lt;bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"&gt;
  &lt;property name="Adapters"&gt;
    &lt;list&gt;
      &lt;ref bean="PlainTextUserAuthenticator"/&gt;
      &lt;ref bean="MD5UserAuthenticator"/&gt;
      &lt;ref bean="LDAPUserAuthenticator"/&gt;
    &lt;/list&gt;
  &lt;/property&gt;
&lt;/bean&gt;
            </programlisting>
          <para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
            4.2.</para>
        </listitem>
        <listitem>
          <para>If you have made changes to your existing copy of the
              <filename>/etc/cloud/management/db.properties</filename> file in your previous-version
            CloudStack installation, the changes will be preserved in the upgrade. However, you need
            to do the following steps to place these changes in a new version of the file which is
            compatible with version 4.0.0-incubating.</para>
          <orderedlist>
            <listitem>
              <para>Make a backup copy of your file
                  <filename>/etc/cloud/management/db.properties</filename>. For example:</para>
              <programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/db.properties</filename> <filename>/etc/cloud/management/db.properties-backup</filename></programlisting>
            </listitem>
            <listitem>
              <para>Copy <filename>/etc/cloud/management/db.properties.rpmnew</filename> to create a
                new <filename>/etc/cloud/management/db.properties</filename>:</para>
              <programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/db.properties.rpmnew</filename> <filename>etc/cloud/management/db.properties</filename></programlisting>
            </listitem>
            <listitem>
              <para>Merge your changes from the backup file into the new db.properties file.</para>
              <programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloud/management/db.properties</filename></programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>On the management server node, run the following command. It is recommended that you
            use the command-line flags to provide your own encryption keys. See Password and Key
            Encryption in the Installation Guide.</para>
          <programlisting><prompt>#</prompt> <command>cloudstack-setup-encryption</command> -e <replaceable>encryption_type</replaceable> -m <replaceable>management_server_key</replaceable> -k <replaceable>database_key</replaceable></programlisting>
          <para>When used without arguments, as in the following example, the default encryption
            type and keys will be used:</para>
          <itemizedlist>
            <listitem>
              <para>(Optional) For encryption_type, use file or web to indicate the technique used
                to pass in the database encryption password. Default: file.</para>
            </listitem>
            <listitem>
              <para>(Optional) For management_server_key, substitute the default key that is used to
                encrypt confidential parameters in the properties file. Default: password. It is
                highly recommended that you replace this with a more secure value</para>
            </listitem>
            <listitem>
              <para>(Optional) For database_key, substitute the default key that is used to encrypt
                confidential parameters in the CloudStack database. Default: password. It is highly
                recommended that you replace this with a more secure value.</para>
            </listitem>
          </itemizedlist>
        </listitem>
        <listitem>
          <para>Repeat steps 10 - 14 on every management server node. If you provided your own
            encryption key in step 14, use the same key on all other management servers.</para>
        </listitem>
        <listitem>
          <para>Start the first Management Server. Do not start any other Management Server nodes
            yet.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
          <para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
            You should see a message like "Complete! Done." After confirmation, start the other
            Management Servers one at a time by running the same command on each node.</para>
        </listitem>
        <listitem>
          <para>Start all Usage Servers (if they were running on your previous version). Perform
            this on each Usage Server host.</para>
          <programlisting language="Bash"><prompt>#</prompt> service cloudstack-usage start</programlisting>
        </listitem>
        <listitem>
          <para>(KVM only) Additional steps are required for each KVM host. These steps will not
            affect running guests in the cloud. These steps are required only for clouds using KVM
            as hosts and only on the KVM hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Copy the CloudPlatform 4.2 tar file to the host, untar it, and change directory
                to the resulting directory.</para>
            </listitem>
            <listitem>
              <para>Stop the running agent.</para>
              <programlisting># service cloud-agent stop</programlisting>
            </listitem>
            <listitem>
              <para>Update the agent software.</para>
              <programlisting># ./install.sh</programlisting>
            </listitem>
            <listitem>
              <para>Choose "U" to update the packages.</para>
            </listitem>
            <listitem>
              <para>Start the agent.</para>
              <programlisting># service cloudstack-agent start</programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>(KVM only) Perform the following additional steps on each KVM host. </para>
          <para>These steps will not affect running guests in the cloud. These steps are required
            only for clouds using KVM as hosts and only on the KVM hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para> Configure your CloudStack package repositories as outlined in the Installation
                Guide </para>
            </listitem>
            <listitem>
              <para>Stop the running agent.</para>
              <programlisting># service cloud-agent stop</programlisting>
            </listitem>
            <listitem>
              <para>Update the agent software with one of the following command sets as
                appropriate.</para>
              <programlisting><prompt>#</prompt> <command>yum</command> update cloud-*</programlisting>
              <programlisting>
                                <prompt>#</prompt> <command>apt-get</command> update
                                <prompt>#</prompt> <command>apt-get</command> upgrade cloud-*
                            </programlisting>
            </listitem>
            <listitem>
              <para>Start the agent.</para>
              <programlisting># service cloudstack-agent start</programlisting>
            </listitem>
            <listitem>
              <para> Copy the contents of the <filename>agent.properties</filename> file to the new
                  <filename>agent.properties</filename> file by using the following command</para>
              <programlisting><command>sed</command> -i 's/com.cloud.agent.resource.computing.LibvirtComputingResource/com.cloud.hypervisor.kvm.resource.LibvirtComputingResource/g' <filename>/etc/cloud/agent/agent.properties</filename></programlisting>
            </listitem>
            <listitem>
              <para>Start the cloud agent and cloud management services.</para>
            </listitem>
            <listitem>
              <para>When the Management Server is up and running, log in to the CloudStack UI and
                restart the virtual router for proper functioning of all the features.</para>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>Log in to the CloudStack UI as admin, and check the status of the hosts. All hosts
            should come to Up state (except those that you know to be offline). You may need to wait
            20 or 30 minutes, depending on the number of hosts.</para>
          <para>Do not proceed to the next step until the hosts show in the Up state. If the hosts
            do not come to the Up state, contact support.</para>
        </listitem>
        <listitem>
          <para>Run the following script to stop, then start, all Secondary Storage VMs, Console
            Proxy VMs, and virtual routers.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Run the command once on one management server. Substitute your own IP address of
                the MySQL instance, the MySQL user to connect as, and the password to use for that
                user. In addition to those parameters, provide the "-c" and "-r" arguments. For
                example:</para>
              <programlisting><prompt>#</prompt> <command>nohup cloud-sysvmadm</command> -d <replaceable>192.168.1.5</replaceable> -u cloud -p <replaceable>password</replaceable> -c -r > sysvm.log 2>&amp;1 &amp;
                                <prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
              <para>This might take up to an hour or more to run, depending on the number of
                accounts in the system.</para>
            </listitem>
            <listitem>
              <para>After the script terminates, check the log to verify correct execution:</para>
              <programlisting><prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
              <para>The content should be like the following:</para>
              <programlisting>
                                Stopping and starting 1 secondary storage vm(s)...
                                Done stopping and starting secondary storage vm(s)
                                Stopping and starting 1 console proxy vm(s)...
                                Done stopping and starting console proxy vm(s).
                                Stopping and starting 4 running routing vm(s)...
                                Done restarting router(s).
                            </programlisting>
            </listitem>
          </orderedlist>
        </listitem>
        <listitem>
          <para>If you would like additional confirmation that the new system VM templates were
            correctly applied when these system VMs were rebooted, SSH into the System VM and check
            the version.</para>
          <para>Use one of the following techniques, depending on the hypervisor.</para>
          <formalpara>
            <title>XenServer or KVM:</title>
            <para>SSH in by using the link local IP address of the system VM. For example, in the
              command below, substitute your own path to the private key used to log in to the
              system VM and your own link local IP.</para>
          </formalpara>
          <para>Run the following commands on the XenServer or KVM host on which the system VM is
            present:</para>
          <programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>link-local-ip</replaceable> -p 3922
                        # cat /etc/cloudstack-release</programlisting>
          <para>The output should be like the following:</para>
          <programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
          <formalpara>
            <title>ESXi</title>
            <para>SSH in using the private IP address of the system VM. For example, in the command
              below, substitute your own path to the private key used to log in to the system VM and
              your own private IP.</para>
          </formalpara>
          <para>Run the following commands on the Management Server:</para>
          <programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>private-ip</replaceable> -p 3922
                        <prompt>#</prompt> <command>cat</command> <filename>/etc/cloudstack-release</filename>
                    </programlisting>
          <para>The output should be like the following:</para>
          <programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
        </listitem>
        <listitem>
          <para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
            supported by CloudStack 4.0.0-incubating. The supported versions are XenServer 5.6 SP2
            and 6.0.2. Instructions for upgrade can be found in the CloudStack 4.0.0-incubating
            Installation Guide.</para>
        </listitem>
        <listitem>
          <para>Apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to XenServer
            v6.0.2 hypervisor hosts.</para>
          <orderedlist numeration="loweralpha">
            <listitem>
              <para>Disconnect the XenServer cluster from CloudStack.</para>
              <para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
                Clusters, click View All. Select the XenServer cluster and click Actions -
                Unmanage.</para>
              <para>This may fail if there are hosts not in one of the states Up, Down,
                Disconnected, or Alert. You may need to fix that before unmanaging this
                cluster.</para>
              <para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
                UI to check on the status. When the cluster is in the unmanaged state, there is no
                connection to the hosts in the cluster.</para>
            </listitem>
            <listitem>
              <para>To clean up the VLAN, log in to one XenServer host and run:</para>
              <programlisting>/opt/xensource/bin/cloud-clean-vlan.sh</programlisting>
            </listitem>
            <listitem>
              <para>Prepare the upgrade by running the following on one XenServer host:</para>
              <programlisting>/opt/xensource/bin/cloud-prepare-upgrade.sh</programlisting>
              <para>If you see a message like "can't eject CD", log in to the VM and umount the CD,
                then run this script again.</para>
            </listitem>
            <listitem>
              <para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
                then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
                hotfixes to the host. Place them in a temporary folder such as /root or /tmp. </para>
              <para>On the Xen pool master, upload the hotfix with this command:</para>
              <programlisting>xe patch-upload file-name=XS602E003.xsupdate</programlisting>
              <para>Make a note of the output from this command, which is a UUID for the hotfix
                file. You'll need it in another step later.</para>
              <note>
                <para>(Optional) If you are applying other hotfixes as well, you can repeat the
                  commands in this section with the appropriate hotfix number. For example,
                  XS602E004.xsupdate.</para>
              </note>
            </listitem>
            <listitem>
              <para>Manually live migrate all VMs on this host to another host. First, get a list of
                the VMs on this host:</para>
              <programlisting># xe vm-list</programlisting>
              <para>Then use this command to migrate each VM. Replace the example host name and VM
                name with your own:</para>
              <programlisting><prompt>#</prompt> <command>xe</command> vm-migrate live=true host=<replaceable>host-name</replaceable> vm=<replaceable>VM-name</replaceable></programlisting>
              <note>
                <title>Troubleshooting</title>
                <para>If you see a message like "You attempted an operation on a VM which requires
                  PV drivers to be installed but the drivers were not detected," run:</para>
                <para><command>/opt/xensource/bin/make_migratable.sh
                    b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
              </note>
            </listitem>
            <listitem>
              <para>Apply the hotfix. First, get the UUID of this host:</para>
              <para><command># xe host-list</command></para>
              <para>Then use the following command to apply the hotfix. Replace the example host
                UUID with the current host ID, and replace the hotfix UUID with the output from the
                patch-upload command you ran on this machine earlier. You can also get the hotfix
                UUID by running xe patch-list. </para>
              <para><command>xe patch-apply host-uuid=<replaceable>host-uuid</replaceable>
                    uuid=<replaceable>hotfix-uuid</replaceable></command></para>
            </listitem>
            <listitem>
              <para>Copy the following files from the CloudStack Management Server to the
                host.</para>
              <informaltable>
                <tgroup cols="2" align="left" colsep="1" rowsep="1">
                  <colspec colwidth="1*" colname="1" colnum="1"/>
                  <colspec colwidth="2*" colname="2" colnum="2"/>
                  <thead>
                    <row>
                      <entry><para>Copy from here...</para></entry>
                      <entry><para>...to here</para></entry>
                    </row>
                  </thead>
                  <tbody>
                    <row>
                      <entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</filename></para></entry>
                      <entry><para><filename>/opt/xensource/sm/NFSSR.py</filename></para></entry>
                    </row>
                    <row>
                      <entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</filename></para></entry>
                      <entry><para><filename>/opt/xensource/bin/setupxenserver.sh</filename></para></entry>
                    </row>
                    <row>
                      <entry><para><filename>/usr/lib64/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh</filename></para></entry>
                      <entry><para><filename>/opt/xensource/bin/make_migratable.sh</filename></para></entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </listitem>
            <listitem>
              <para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
                Support Pack.</para>
              <itemizedlist>
                <listitem>
                  <para>Download the CSP software onto the XenServer host from one of the following
                    links:</para>
                  <para>For hotfix XS602E005: <ulink
                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
                  <para>For hotfix XS602E007: <ulink
                      url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
                      >http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
                </listitem>
                <listitem>
                  <para>Extract the file:</para>
                  <para><command># tar xf xenserver-cloud-supp.tgz</command></para>
                </listitem>
                <listitem>
                  <para>Run the following script:</para>
                  <para><command># xe-install-supplemental-pack
                    xenserver-cloud-supp.iso</command></para>
                </listitem>
                <listitem>
                  <para>If the XenServer host is part of a zone that uses basic networking, disable
                    Open vSwitch (OVS):</para>
                  <para><command># xe-switch-network-backend bridge</command></para>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para>Reboot this XenServer host.</para>
            </listitem>
            <listitem>
              <para>Run the following:</para>
              <para><command>/opt/xensource/bin/setupxenserver.sh</command></para>
              <note>
                <para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
                  directory" appears, you can safely ignore it.</para>
              </note>
            </listitem>
            <listitem>
              <para>Run the following:</para>
              <para><command>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk
                  '{print $NF}'`; do xe pbd-plug uuid=$pbd ; </command>
              </para>
            </listitem>
            <listitem>
              <para>On each slave host in the Xen pool, repeat these steps, starting from "manually
                live migrate VMs."</para>
            </listitem>
          </orderedlist>
        </listitem>
      </orderedlist>
    </section>
  </chapter>
  <chapter id="api-changes">
    <title>API Changes in 4.2</title>
    <section id="added-API-commands-4.2">
      <title>Added API Commands in 4.2</title>
      <section>
        <title>Secondary Storage</title>
        <itemizedlist>
          <listitem>
            <para>addImageStore (Adds all types of secondary storage providers, S3/Swift/NFS)</para>
          </listitem>
          <listitem>
            <para>createSecondaryStagingStore (Adds a staging secondary storage in each zone)</para>
          </listitem>
          <listitem>
            <para>listImageStores (Lists all secondary storages, S3/Swift/NFS)</para>
          </listitem>
          <listitem>
            <para>listSecondaryStagingStores (Lists all staging secondary storages)</para>
          </listitem>
          <listitem>
            <para>addS3 (Adds a Amazon Simple Storage Service instance.) It is recommended to use
              addImageStore instead.</para>
          </listitem>
          <listitem>
            <para>listS3s (Lists all the Amazon Simple Storage Service instances.) It is recommended
              to use listImageStores instead.</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>VM Snapshot</title>
        <itemizedlist>
          <listitem>
            <para>createVMSnapshot (Creates a virtual machine snapshot; see <xref
                linkend="vm-snapshots"/>)</para>
          </listitem>
          <listitem>
            <para>deleteVMSnapshot (Deletes a virtual machine snapshot)</para>
          </listitem>
          <listitem>
            <para>listVMSnapshot (Shows a virtual machine snapshot)</para>
          </listitem>
          <listitem>
            <para>revertToVMSnapshot (Returns a virtual machine to the state and data saved in a
              given snapshot)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Load Balancer Health Check</title>
        <itemizedlist>
          <listitem>
            <para>createLBHealthCheckPolicy (Creates a new health check policy for a load balancer
              rule; see <xref linkend="health-check"/>)</para>
          </listitem>
          <listitem>
            <para>deleteLBHealthCheckPolicy (Deletes an existing health check policy from a load
              balancer rule)</para>
          </listitem>
          <listitem>
            <para>listLBHealthCheckPolicies (Displays the health check policy for a load balancer
              rule)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Egress Firewall Rules</title>
        <itemizedlist>
          <listitem>
            <para>createEgressFirewallRules (Creates an egress firewall rule on the guest network;
              see <xref linkend="egress-firewall"/>)</para>
          </listitem>
          <listitem>
            <para>deleteEgressFirewallRules (Deletes a egress firewall rule on the guest
              network.)</para>
          </listitem>
          <listitem>
            <para>listEgressFirewallRules (Lists the egress firewall rules configured for a guest
              network.)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>SSH Key</title>
        <itemizedlist>
          <listitem>
            <para>resetSSHKeyForVirtualMachine (Resets the SSHkey for virtual machine.)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Bare Metal</title>
        <itemizedlist>
          <listitem>
            <para>addBaremetalHost (Adds a new host. Technically, this API command was present in
              v3.0.6, but its functionality was disabled. See <xref linkend="baremetal"/>)</para>
          </listitem>
          <listitem>
            <para>addBaremetalDhcp (Adds a DHCP server for bare metal hosts)</para>
          </listitem>
          <listitem>
            <para> addBaremetalPxePingServer (Adds a PXE PING server for bare metal hosts)</para>
          </listitem>
          <listitem>
            <para> addBaremetalPxeKickStartServer (Adds a PXE server for bare metal hosts)</para>
          </listitem>
          <listitem>
            <para> listBaremetalDhcp (Shows the DHCP servers currently defined for bare metal
              hosts)</para>
          </listitem>
          <listitem>
            <para> listBaremetalPxePingServer (Shows the PXE PING servers currently defined for bare
              metal hosts)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>NIC</title>
        <itemizedlist>
          <listitem>
            <para>addNicToVirtualMachine (Adds a new NIC to the specified VM on a selected network;
              see <xref linkend="multiple-ip-nic"/>)</para>
          </listitem>
          <listitem>
            <para>removeNicFromVirtualMachine (Removes the specified NIC from a selected VM.)</para>
          </listitem>
          <listitem>
            <para>updateDefaultNicForVirtualMachine (Updates the specified NIC to be the default one
              for a selected VM.)</para>
          </listitem>
          <listitem>
            <para>addIpToNic (Assigns secondary IP to a NIC.) </para>
          </listitem>
          <listitem>
            <para>removeIpFromNic (Assigns secondary IP to a NIC.) </para>
          </listitem>
          <listitem>
            <para>listNics (Lists the NICs associated with a VM.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Regions</title>
        <itemizedlist>
          <listitem>
            <para>addRegion (Registers a Region into another Region; see <xref linkend="regions"
              />)</para>
          </listitem>
          <listitem>
            <para>updateRegion (Updates Region details: ID, Name, Endpoint, User API Key, and User
              Secret Key.)</para>
          </listitem>
          <listitem>
            <para>removeRegion (Removes a Region from current Region.)</para>
          </listitem>
          <listitem>
            <para>listRegions (Get all the Regions. They can be filtered by using the ID or
              Name.)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>User</title>
        <itemizedlist>
          <listitem>
            <para>getUser (This API can only be used by the Admin. Get user account details by using
              the API Key.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>API Throttling</title>
        <itemizedlist>
          <listitem>
            <para>getApiLimit (Show number of remaining APIs for the invoking user in current
              window)</para>
          </listitem>
          <listitem>
            <para>resetApiLimit (For root admin, if accountId parameter is passed, it will reset
              count for that particular account, otherwise it will reset all counters)</para>
          </listitem>
          <listitem>
            <para>resetApiLimit (Reset the API count.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Locking</title>
        <itemizedlist>
          <listitem>
            <para>lockAccount (Locks an account)</para>
          </listitem>
          <listitem>
            <para>lockUser (Locks a user account)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>VM Scaling</title>
        <itemizedlist>
          <listitem>
            <para>scaleVirtualMachine (Scales the virtual machine to a new service offering.)</para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Migrate Volume</title>
        <itemizedlist>
          <listitem>
            <para>migrateVirtualMachineWithVolume (Attempts migrating VM with its volumes to a
              different host.) </para>
          </listitem>
          <listitem>
            <para>listStorageProviders (Lists storage providers.) </para>
          </listitem>
          <listitem>
            <para>findStoragePoolsForMigration (Lists storage pools available for migrating a
              volume.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Dedicated IP and VLAN</title>
        <itemizedlist>
          <listitem>
            <para>dedicatePublicIpRange (Dedicates a Public IP range to an account.) </para>
          </listitem>
          <listitem>
            <para>releasePublicIpRange (Releases a Public IP range back to the system pool.) </para>
          </listitem>
          <listitem>
            <para>dedicateGuestVlanRange (Dedicates a guest VLAN range to an account.) </para>
          </listitem>
          <listitem>
            <para>releaseDedicatedGuestVlanRange (Releases a dedicated guest VLAN range to the
              system.) </para>
          </listitem>
          <listitem>
            <para>listDedicatedGuestVlanRanges (Lists dedicated guest VLAN ranges.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Port Forwarding</title>
        <itemizedlist>
          <listitem>
            <para>updatePortForwardingRule (Updates a port forwarding rule. Only the private port
              and the VM can be updated.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Scale System VM</title>
        <itemizedlist>
          <listitem>
            <para>scaleSystemVm (Scale the service offering for a systemVM, console proxy, or
              secondary storage.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Deployment Planner</title>
        <itemizedlist>
          <listitem>
            <para>listDeploymentPlanners (Lists all the deployment planners available.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Archive and Delete Events and Alerts</title>
        <itemizedlist>
          <listitem>
            <para>archiveEvents (Archive one or more events.) </para>
          </listitem>
          <listitem>
            <para>deleteEvents (Delete one or more events.) </para>
          </listitem>
          <listitem>
            <para>archiveAlerts (Archive one or more alerts.) </para>
          </listitem>
          <listitem>
            <para>deleteAlerts (Delete one or more alerts.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Host Reservation</title>
        <itemizedlist>
          <listitem>
            <para>releaseHostReservation (Releases host reservation.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Resize Volume</title>
        <itemizedlist>
          <listitem>
            <para>resizeVolume (Resizes a volume.) </para>
          </listitem>
          <listitem>
            <para>updateVolume (Updates the volume.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Egress Firewall Rules</title>
        <itemizedlist>
          <listitem>
            <para>createEgressFirewallRule (Creates a egress firewall rule for a given network. )
            </para>
          </listitem>
          <listitem>
            <para>deleteEgressFirewallRule (Deletes an egress firewall rule.) </para>
          </listitem>
          <listitem>
            <para>listEgressFirewallRules (Lists all egress firewall rules for network.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Network ACL</title>
        <itemizedlist>
          <listitem>
            <para>updateNetworkACLItem (Updates ACL item with specified ID.) </para>
          </listitem>
          <listitem>
            <para>createNetworkACLList (Creates a Network ACL for the given VPC.) </para>
          </listitem>
          <listitem>
            <para>deleteNetworkACLList (Deletes a Network ACL.) </para>
          </listitem>
          <listitem>
            <para>replaceNetworkACLList (Replaces ACL associated with a Network or private gateway.)
            </para>
          </listitem>
          <listitem>
            <para>listNetworkACLLists (Lists all network ACLs.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Resource Detail</title>
        <itemizedlist>
          <listitem>
            <para>addResourceDetail (Adds detail for the Resource.) </para>
          </listitem>
          <listitem>
            <para>removeResourceDetail (Removes detail for the Resource.) </para>
          </listitem>
          <listitem>
            <para>listResourceDetails (List resource details.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Nicira Integration</title>
        <itemizedlist>
          <listitem>
            <para>addNiciraNvpDevice (Adds a Nicira NVP device.) </para>
          </listitem>
          <listitem>
            <para>deleteNiciraNvpDevice (Deletes a Nicira NVP device.) </para>
          </listitem>
          <listitem>
            <para>listNiciraNvpDevices (Lists Nicira NVP devices.) </para>
          </listitem>
          <listitem>
            <para>listNiciraNvpDeviceNetworks (Lists network that are using a Nicira NVP device.)
            </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>BigSwitch VNS</title>
        <itemizedlist>
          <listitem>
            <para>addBigSwitchVnsDevice (Adds a BigSwitch VNS device.) </para>
          </listitem>
          <listitem>
            <para>deleteBigSwitchVnsDevice (Deletes a BigSwitch VNS device.) </para>
          </listitem>
          <listitem>
            <para>listBigSwitchVnsDevices (Lists BigSwitch VNS devices.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Simulator</title>
        <itemizedlist>
          <listitem>
            <para>configureSimulator (Configures a simulator.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>API Discovery</title>
        <itemizedlist>
          <listitem>
            <para>listApis (Lists all the available APIs on the server, provided by the API
              Discovery plugin.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Global Load Balancer</title>
        <itemizedlist>
          <listitem>
            <para>createGlobalLoadBalancerRule (Creates a global load balancer rule.) </para>
          </listitem>
          <listitem>
            <para>deleteGlobalLoadBalancerRule (Deletes a global load balancer rule.) </para>
          </listitem>
          <listitem>
            <para>updateGlobalLoadBalancerRule (update global load balancer rules.) </para>
          </listitem>
          <listitem>
            <para>listGlobalLoadBalancerRules (Lists load balancer rules.) </para>
          </listitem>
          <listitem>
            <para>assignToGlobalLoadBalancerRule (Assign load balancer rule or list of load balancer
              rules to a global load balancer rules.) </para>
          </listitem>
          <listitem>
            <para>removeFromGlobalLoadBalancerRule (Removes a load balancer rule association with
              global load balancer rule) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Load Balancer</title>
        <itemizedlist>
          <listitem>
            <para>createLoadBalancer (Creates a Load Balancer) </para>
          </listitem>
          <listitem>
            <para>listLoadBalancers (Lists Load Balancers) </para>
          </listitem>
          <listitem>
            <para>deleteLoadBalancer (Deletes a load balancer) </para>
          </listitem>
          <listitem>
            <para>configureInternalLoadBalancerElement (Configures an Internal Load Balancer
              element.) </para>
          </listitem>
          <listitem>
            <para>createInternalLoadBalancerElement (Create an Internal Load Balancer element.)
            </para>
          </listitem>
          <listitem>
            <para>listInternalLoadBalancerElements (Lists all available Internal Load Balancer
              elements.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Affinity Group</title>
        <itemizedlist>
          <listitem>
            <para>createAffinityGroup (Creates an affinity or anti-affinity group.) </para>
          </listitem>
          <listitem>
            <para>deleteAffinityGroup (Deletes an affinity group.) </para>
          </listitem>
          <listitem>
            <para>listAffinityGroups (Lists all the affinity groups.)</para>
          </listitem>
          <listitem>
            <para>updateVMAffinityGroup (Updates the affinity or anti-affinity group associations of
              a VM. The VM has to be stopped and restarted for the new properties to take effect.)
            </para>
          </listitem>
          <listitem>
            <para>listAffinityGroupTypes (Lists affinity group types available.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Portable IP</title>
        <itemizedlist>
          <listitem>
            <para>createPortableIpRange (Adds a range of portable portable IPs to a Region.)</para>
          </listitem>
          <listitem>
            <para>deletePortableIpRange (Deletes a range of portable portable IPs associated with a
              Region.) </para>
          </listitem>
          <listitem>
            <para>listPortableIpRanges (Lists portable IP ranges.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Internal Load Balancer VM</title>
        <itemizedlist>
          <listitem>
            <para>stopInternalLoadBalancerVM (Stops an Internal LB VM.) </para>
          </listitem>
          <listitem>
            <para>startInternalLoadBalancerVM (Starts an existing Internal LB VM.) </para>
          </listitem>
          <listitem>
            <para>listInternalLoadBalancerVMs (List internal LB VMs.) </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Network Isolation</title>
        <itemizedlist>
          <listitem>
            <para>listNetworkIsolationMethods (Lists supported methods of network isolation.)
            </para>
          </listitem>
        </itemizedlist>
      </section>
      <section>
        <title>Dedicated Resources</title>
        <itemizedlist>
          <listitem>
            <para>dedicateZone (Dedicates a zone.) </para>
          </listitem>
          <listitem>
            <para>dedicatePod (Dedicates a pod.) </para>
          </listitem>
          <listitem>
            <para>dedicateCluster (Dedicate an existing cluster.) </para>
          </listitem>
          <listitem>
            <para>dedicateHost (Dedicates a host.) </para>
          </listitem>
          <listitem>
            <para>releaseDedicatedZone (Release dedication of zone.) </para>
          </listitem>
          <listitem>
            <para>releaseDedicatedPod (Release dedication for the pod.) </para>
          </listitem>
          <listitem>
            <para>releaseDedicatedCluster (Release dedication for cluster.) </para>
          </listitem>
          <listitem>
            <para>releaseDedicatedHost (Release dedication for host.) </para>
          </listitem>
          <listitem>
            <para>listDedicatedZones (List dedicated zones.) </para>
          </listitem>
          <listitem>
            <para>listDedicatedPods (Lists dedicated pods.) </para>
          </listitem>
          <listitem>
            <para>listDedicatedClusters (Lists dedicated clusters.) </para>
          </listitem>
          <listitem>
            <para>listDedicatedHosts (Lists dedicated hosts.) </para>
          </listitem>
        </itemizedlist>
      </section>
    </section>
    <section id="changed-api-commands-4.2">
      <title>Changed API Commands in 4.2</title>
      <informaltable>
        <tgroup cols="2" align="left" colsep="1" rowsep="1">
          <colspec colwidth="1.0*" colname="1" colnum="1"/>
          <colspec colwidth="4.26*" colname="2" colnum="2"/>
          <thead>
            <row>
              <entry>
                <para>API Commands</para>
              </entry>
              <entry>
                <para>Description</para>
              </entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>
                <para>listNetworkACLs</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: aclid (optional), action
                  (optional), protocol (optional)</para>
                <para>The following new response parameters are added: aclid, action, number</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>copyTemplate</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listRouters</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: ip6dns1, ip6dns2, role</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateConfiguration</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: accountid (optional),
                  clusterid (optional), storageid (optional), zoneid (optional)</para>
                <para>The following new response parameters are added: id, scope </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listVolumes</para>
              </entry>
              <entry>
                <para>The following request parameter is removed: details </para>
                <para>The following new response parameter is added: displayvolume </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>suspendProject</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: cpuavailable, cpulimit,
                  cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
                  memorytotal, networkavailable, networklimit, networktotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
                  snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
                  templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
                  volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listRemoteAccessVpns</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: id</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>registerTemplate</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: imagestoreuuid (optional),
                  isdynamicallyscalable (optional), isrouting (optional) </para>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>addTrafficMonitor</para>
              </entry>
              <entry>
                <para>The following response parameters are removed: privateinterface, privatezone,
                  publicinterface, publiczone, usageinterface, username </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createTemplate</para>
              </entry>
              <entry>
                <para>The following response parameters are removed: clusterid, clustername,
                  disksizeallocated, disksizetotal, disksizeused, ipaddress, path, podid, podname,
                  state, tags, type </para>
                <para>The following new response parameters are added: account, accountid, bootable,
                  checksum, crossZones, details, displaytext, domain, domainid, format, hostid,
                  hostname, hypervisor, isdynamicallyscalable, isextractable, isfeatured, ispublic,
                  isready, ostypeid, ostypename, passwordenabled, project, projectid, removed, size,
                  sourcetemplateid, sshkeyenabled, status, templatetag, templatetype, tags</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listLoadBalancerRuleInstances</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>migrateVolume</para>
              </entry>
              <entry>
                <para>The following new request parameters is added: livemigrate (optional) </para>
                <para>The following new response parameters is added: displayvolume </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createAccount</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: accountid (optional), userid
                  (optional)</para>
                <para>The following new response parameters are added: accountdetails, cpuavailable,
                  cpulimit, cputotal, defaultzoneid, ipavailable, iplimit, iptotal,
                  iscleanuprequired, isdefault, memoryavailable, memorylimit, memorytotal, name,
                  networkavailable, networkdomain, networklimit, networktotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  projectavailable, projectlimit, projecttotal, receivedbytes,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
                  sentbytes, snapshotavailable, snapshotlimit, snapshottotal, templateavailable,
                  templatelimit, templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
                  volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal,
                  user</para>
                <para>The following parameters are removed: account, accountid, apikey, created,
                  email, firstname, lastname, secretkey, timezone, username </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updatePhysicalNetwork</para>
              </entry>
              <entry>
                <para>The following new request parameters is added: removevlan (optional) </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listTrafficMonitors</para>
              </entry>
              <entry>
                <para>The following response parameters are removed: privateinterface, privatezone,
                  publicinterface, publiczone, usageinterface, username </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>attachIso</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listProjects</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: cpuavailable, cpulimit,
                  cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
                  memorytotal, networkavailable, networklimit, networktotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
                  snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
                  templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
                  volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>enableAccount</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: cpuavailable, cpulimit,
                  cputotal, isdefault, memoryavailable, memorylimit, memorytotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listPublicIpAddresses</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: isportable, vmipaddress
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>enableStorageMaintenance</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: hypervisor, scope,
                  suitableformigration </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listLoadBalancerRules</para>
              </entry>
              <entry>
                <para>The following new request parameters is added: networkid (optional) </para>
                <para>The following new response parameters is added: networkid</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>stopRouter</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: ip6dns1, ip6dns2, role
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listClusters</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: cpuovercommitratio,
                  memoryovercommitratio </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>attachVolume</para>
              </entry>
              <entry>
                <para>The following new response parameter is added: displayvolume</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateVPCOffering</para>
              </entry>
              <entry>
                <para>The following request parameters is made mandatory: id</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>resetSSHKeyForVirtualMachine</para>
              </entry>
              <entry>
                <para>The following new request parameter is added: keypair (required)</para>
                <para>The following parameter is removed: name</para>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateCluster</para>
              </entry>
              <entry>
                <para>The following request parameters are removed: cpuovercommitratio,
                  memoryovercommitratio (optional) </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listPrivateGateways</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: aclid, sourcenatsupported
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>ldapConfig</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: listall (optional) </para>
                <para>The following parameters has been made optional: searchbase, hostname,
                  queryfilter</para>
                <para>The following new response parameter is added: ssl</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listTemplates</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listNetworks</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: aclid, displaynetwork,
                  ip6cidr, ip6gateway, ispersistent, networkcidr, reservediprange </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>restartNetwork</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: isportable, vmipaddress
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>prepareTemplate</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>rebootVirtualMachine</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>changeServiceForRouter</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: aclid (optional), action
                  (optional), protocol (optional)</para>
                <para>The following new response parameters are added: id, scope</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateZone</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: ip6dns1 (optional), ip6dns2
                  (optional) </para>
                <para>The following new response parameters are added: ip6dns1, ip6dns2 </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>ldapRemove</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: ssl</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateServiceOffering</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: deploymentplanner, isvolatile
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateStoragePool</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: hypervisor, scope,
                  suitableformigration</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listFirewallRules</para>
              </entry>
              <entry>
                <para>The following request parameter is removed: traffictype</para>
                <para>The following new response parameters are added: networkid</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateUser</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: iscallerchilddomain,
                  isdefault </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateProject</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: cpuavailable, cpulimit,
                  cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
                  memorytotal, networkavailable, networklimit, networktotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
                  snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
                  templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
                  volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateTemplate</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: isdynamicallyscalable
                  (optional), isrouting (optional) </para>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>disableUser</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: iscallerchilddomain,
                  isdefault </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>activateProject</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: cpuavailable, cpulimit,
                  cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
                  memorytotal, networkavailable, networklimit, networktotal,
                  primarystorageavailable, primarystoragelimit, primarystoragetotal,
                  secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
                  snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
                  templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
                  volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createNetworkACL</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: aclid (optional), action
                  (optional), number (optional) </para>
                <para>The following request parameter is now optional: networkid</para>
                <para>The following new response parameters are added: aclid, action, number </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>enableStaticNat</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: vmguestip (optional) </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>registerIso</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: imagestoreuuid (optional),
                  isdynamicallyscalable (optional)</para>
                <para>The following new response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createIpForwardingRule</para>
              </entry>
              <entry>
                <para>The following new response parameter is added: vmguestip </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>resetPasswordForVirtualMachine</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createVolume</para>
              </entry>
              <entry>
                <para>The following new request parameter is added: displayvolume (optional)</para>
                <para>The following new response parameter is added: displayvolume</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>startRouter</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: ip6dns1, ip6dns2, role
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listCapabilities</para>
              </entry>
              <entry>
                <para>The following new response parameters are added: apilimitinterval and
                  apilimitmax.</para>
                <para>See <xref linkend="api-request-throttling"/>.</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createServiceOffering</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: deploymentplanner (optional),
                  isvolatile (optional), serviceofferingdetails (optional). </para>
                <para>isvolatie indicates whether the service offering includes Volatile VM
                  capability, which will discard the VM's root disk and create a new one on reboot.
                  See <xref linkend="reset-vm-reboot"/>.</para>
                <para>The following new response parameters are added: deploymentplanner, isvolatile
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>restoreVirtualMachine</para>
              </entry>
              <entry>
                <para>The following request parameter is added: templateID (optional). This is used
                  to point to the new template ID when the base image is updated. The parameter
                  templateID can be an ISO ID in case of restore vm deployed using ISO. See <xref
                    linkend="update-vm-image"/>.</para>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createNetwork</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: aclid (optional),
                  displaynetwork (optional), endipv6 (optional), ip6cidr (optional), ip6gateway
                  (optional), isolatedpvlan (optional), startipv6 (optional)</para>
                <para>The following new response parameters are added: aclid, displaynetwork,
                  ip6cidr, ip6gateway, ispersistent, networkcidr, reservediprange </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createVlanIpRange</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: startipv6, endipv6,
                  ip6gateway, ip6cidr</para>
                <para>Changed parameters: startip (is now optional)</para>
                <para>The following new response parameters are added: startipv6, endipv6,
                  ip6gateway, ip6cidr</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>CreateZone</para>
              </entry>
              <entry>
                <para>The following new request parameters are added: ip6dns1, ip6dns2</para>
                <para>The following new response parameters are added: ip6dns1, ip6dns2 </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>deployVirtualMachine</para>
              </entry>
              <entry>
                <para>The following request parameters are added: affinitygroupids (optional),
                  affinitygroupnames (optional), displayvm (optional), ip6address (optional) </para>
                <para>The following request parameter is modified: iptonetworklist has a new
                  possible value, ipv6</para>
                <para>The following new response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createNetworkOffering</para>
              </entry>
              <entry>
                <para>The following request parameters are added: details (optional),
                  egressdefaultpolicy (optional), ispersistent (optional) </para>
                <para>ispersistent determines if the network or network offering created or listed
                  by using this offering are persistent or not.</para>
                <para>The following response parameters are added: details, egressdefaultpolicy,
                  ispersistent </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listNetworks</para>
              </entry>
              <entry>
                <para>The following request parameters is added: isPersistent.</para>
                <para>This parameter determines if the network or network offering created or listed
                  by using this offering are persistent or not.</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listNetworkOfferings</para>
              </entry>
              <entry>
                <para>The following request parameters is added: isPersistent.</para>
                <para>This parameter determines if the network or network offering created or listed
                  by using this offering are persistent or not.</para>
                <para>For listNetworkOfferings, the following response parameter has been added:
                  details, egressdefaultpolicy, ispersistent </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>addF5LoadBalancer</para>
                <para>configureNetscalerLoadBalancer</para>
                <para>addNetscalerLoadBalancer</para>
                <para>listF5LoadBalancers</para>
                <para>configureF5LoadBalancer</para>
                <para>listNetscalerLoadBalancers</para>
              </entry>
              <entry>
                <para>The following response parameter is removed: inline.</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listRouters</para>
              </entry>
              <entry>
                <para>For nic responses, the following fields have been added.</para>
                <itemizedlist>
                  <listitem>
                    <para>ip6address</para>
                  </listitem>
                  <listitem>
                    <para>ip6gateway</para>
                  </listitem>
                  <listitem>
                    <para>ip6cidr</para>
                  </listitem>
                </itemizedlist>
              </entry>
            </row>
            <row>
              <entry>
                <para>listVirtualMachines</para>
              </entry>
              <entry>
                <para>The following request parameters are added: affinitygroupid (optional), vpcid
                  (optional) </para>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listRouters</para>
                <para>listZones</para>
              </entry>
              <entry>
                <para>For DomainRouter and DataCenter response, the following fields have been
                  added.</para>
                <itemizedlist>
                  <listitem>
                    <para>ip6dns1</para>
                  </listitem>
                  <listitem>
                    <para>ip6dns2</para>
                  </listitem>
                </itemizedlist>
                <para>For listZones, the following optional request parameters are added: name,
                  networktype</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listFirewallRules</para>
                <para>createFirewallRule</para>
              </entry>
              <entry>
                <para>The following request parameter is added: traffictype (optional).</para>
                <para>The following response parameter is added: networkid </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listUsageRecords</para>
              </entry>
              <entry>
                <para>The following response parameter is added: virtualsize.</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>deleteIso</para>
              </entry>
              <entry>
                <para>The following request parameter is removed: forced</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>addCluster</para>
              </entry>
              <entry>
                <para>The following request parameters are added: guestvswitchtype (optional),
                  guestvswitchtype (optional), publicvswitchtype (optional), publicvswitchtype
                  (optional)</para>
                <para>See <xref linkend="cpu-ram-overcommit"/>.</para>
                <para>The following request parameters are removed: cpuovercommitratio,
                  memoryovercommitratio </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateCluster</para>
              </entry>
              <entry>
                <para>The following request parameters are added: cpuovercommitratio,
                  ramovercommitratio</para>
                <para>See <xref linkend="cpu-ram-overcommit"/>.</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createStoragePool</para>
              </entry>
              <entry>
                <para>The following request parameters are added: hypervisor (optional), provider
                  (optional), scope (optional) </para>
                <para>The following request parameters have been made mandatory: podid,
                  clusterid</para>
                <para>See <xref linkend="zone-wide-primary-storage"/>.</para>
                <para>The following response parameter has been added: hypervisor, scope,
                  suitableformigration </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listStoragePools</para>
              </entry>
              <entry>
                <para>The following request parameter is added: scope (optional)</para>
                <para>See <xref linkend="zone-wide-primary-storage"/>.</para>
                <para>The following response parameters are added: hypervisor, scope,
                  suitableformigration </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateDiskOffering</para>
              </entry>
              <entry>
                <para>The following response parameter is added: displayoffering </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>changeServiceForVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameter are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>recoverVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listCapabilities</para>
              </entry>
              <entry>
                <para>The following response parameters are added: apilimitinterval, apilimitmax
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createRemoteAccessVpn</para>
              </entry>
              <entry>
                <para>The following response parameters are added: id</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>startVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>detachIso</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateVPC</para>
              </entry>
              <entry>
                <para>The following request parameters has been made mandatory: id, name</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>associateIpAddress</para>
              </entry>
              <entry>
                <para>The following request parameters are added: isportable (optional), regionid
                  (optional) </para>
                <para>The following response parameters are added: isportable, vmipaddress </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listProjectAccounts</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  ipavailable, iplimit, iptotal, memoryavailable, memorylimit, memorytotal,
                  networkavailable, networklimit, networktotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal, snapshotavailable, snapshotlimit,
                  snapshottotal, templateavailable, templatelimit, templatetotal, vmavailable,
                  vmlimit, vmrunning, vmstopped, vmtotal, volumeavailable, volumelimit, volumetotal,
                  vpcavailable, vpclimit, vpctotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>disableAccount</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listPortForwardingRules</para>
              </entry>
              <entry>
                <para>The following response parameters are added: vmguestip</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>migrateVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>cancelStorageMaintenance</para>
              </entry>
              <entry>
                <para>The following response parameters are added: hypervisor, scope,
                  suitableformigration </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createPortForwardingRule</para>
              </entry>
              <entry><para>The following request parameter is added: vmguestip (optional) </para>The
                following response parameter is added: vmguestip</entry>
            </row>
            <row>
              <entry>
                <para>addVpnUser</para>
              </entry>
              <entry>
                <para>The following response parameter is added: state</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createVPCOffering</para>
              </entry>
              <entry>
                <para>The following request parameter is added: serviceproviderlist (optional)
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>assignVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listConditions</para>
              </entry>
              <entry>
                <para>The following response parameters are added: account, counter, domain,
                  domainid, project, projectid, relationaloperator, threshold</para>
                <para>Removed response parameters: name, source, value </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createPrivateGateway</para>
              </entry>
              <entry>
                <para>The following request parameters are added: aclid (optional),
                  sourcenatsupported (optional) </para>
                <para>The following response parameters are added: aclid, sourcenatsupported </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateVirtualMachine</para>
              </entry>
              <entry>
                <para>The following request parameters are added: displayvm (optional),
                  isdynamicallyscalable (optional) </para>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>destroyRouter</para>
              </entry>
              <entry>
                <para>The following response parameters are added: ip6dns1, ip6dns2, role </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listServiceOfferings</para>
              </entry>
              <entry>
                <para>The following response parameters are added: deploymentplanner, isvolatile
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listUsageRecords</para>
              </entry>
              <entry>
                <para>The following response parameters are removed: virtualsize </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createProject</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  ipavailable, iplimit, iptotal, memoryavailable, memorylimit, memorytotal,
                  networkavailable, networklimit, networktotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal, snapshotavailable, snapshotlimit,
                  snapshottotal, templateavailable, templatelimit, templatetotal, vmavailable,
                  vmlimit, vmrunning, vmstopped, vmtotal, volumeavailable, volumelimit, volumetotal,
                  vpcavailable, vpclimit, vpctotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>enableUser</para>
              </entry>
              <entry>
                <para>The following response parameters are added: iscallerchilddomain, isdefault
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createLoadBalancerRule</para>
              </entry>
              <entry>
                <para>The following response parameter is added: networkid </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateAccount</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>copyIso</para>
              </entry>
              <entry>
                <para>The following response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>uploadVolume</para>
              </entry>
              <entry>
                <para>The following request parameters are added: imagestoreuuid (optional),
                  projectid (optional</para>
                <para>The following response parameters are added: displayvolume </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createDomain</para>
              </entry>
              <entry>
                <para>The following request parameter is added: domainid (optional) </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>stopVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listAccounts</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createSnapshot</para>
              </entry>
              <entry>
                <para>The following response parameter is added: zoneid </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateIso</para>
              </entry>
              <entry>
                <para>The following request parameters are added: isdynamicallyscalable (optional),
                  isrouting (optional) </para>
                <para>The following response parameters are added: isdynamicallyscalable,
                  sshkeyenabled</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listIpForwardingRules</para>
              </entry>
              <entry>
                <para>The following response parameter is added: vmguestip </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateNetwork</para>
              </entry>
              <entry>
                <para>The following request parameters are added: displaynetwork (optional),
                  guestvmcidr (optional) </para>
                <para>The following response parameters are added: aclid, displaynetwork, ip6cidr,
                  ip6gateway, ispersistent, networkcidr, reservediprange </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>destroyVirtualMachine</para>
              </entry>
              <entry>
                <para>The following response parameters are added: diskioread, diskiowrite,
                  diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createDiskOffering</para>
              </entry>
              <entry>
                <para>The following request parameter is added: displayoffering (optional)</para>
                <para>The following response parameter is added: displayoffering </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>rebootRouter</para>
              </entry>
              <entry>
                <para>The following response parameters are added: ip6dns1, ip6dns2, role </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listConfigurations</para>
              </entry>
              <entry>
                <para>The following request parameters are added: accountid (optional), clusterid
                  (optional), storageid (optional), zoneid (optional) </para>
                <para>The following response parameters are added: id, scope</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createUser</para>
              </entry>
              <entry>
                <para>The following request parameter is added: userid (optional)</para>
                <para>The following response parameters are added: iscallerchilddomain,
                  isdefault</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listDiskOfferings</para>
              </entry>
              <entry>
                <para>The following response parameter is added: displayoffering</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>detachVolume</para>
              </entry>
              <entry>
                <para>The following response parameter is added: displayvolume </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>deleteUser</para>
              </entry>
              <entry>
                <para>The following response parameters are added: displaytext, success</para>
                <para>Removed parameters: id, account, accountid, accounttype, apikey, created,
                  domain, domainid, email, firstname, lastname, secretkey, state, timezone, username
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listSnapshots</para>
              </entry>
              <entry>
                <para>The following request parameter is added: zoneid (optional) </para>
                <para>The following response parameter is added: zoneid</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>markDefaultZoneForAccount</para>
              </entry>
              <entry>
                <para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
                  isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
                  primarystoragelimit, primarystoragetotal, secondarystorageavailable,
                  secondarystoragelimit, secondarystoragetotal </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>restartVPC</para>
              </entry>
              <entry>
                <para>The following request parameters are made mandatory: id</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateHypervisorCapabilities</para>
              </entry>
              <entry>
                <para>The following response parameters are added: hypervisor, hypervisorversion,
                  maxdatavolumeslimit, maxguestslimit, maxhostspercluster, securitygroupenabled,
                  storagemotionenabled </para>
                <para>Removed parameters: cpunumber, cpuspeed, created, defaultuse, displaytext,
                  domain, domainid, hosttags, issystem, limitcpuuse, memory, name, networkrate,
                  offerha, storagetype, systemvmtype, tags </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateLoadBalancerRule</para>
              </entry>
              <entry>
                <para>The following response parameter is added: networkid </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listVlanIpRanges</para>
              </entry>
              <entry>
                <para>The following response parameters are added: endipv6, ip6cidr, ip6gateway,
                  startipv6 </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listHypervisorCapabilities</para>
              </entry>
              <entry>
                <para>The following response parameters are added: maxdatavolumeslimit,
                  maxhostspercluster, storagemotionenabled </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>updateNetworkOffering</para>
              </entry>
              <entry>
                <para>The following response parameters are added: details, egressdefaultpolicy,
                  ispersistent </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>createVirtualRouterElement</para>
              </entry>
              <entry>
                <para>The following request parameters are added: providertype (optional)</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listVpnUsers</para>
              </entry>
              <entry>
                <para>The following response parameter is added: state</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listUsers</para>
              </entry>
              <entry>
                <para>The following response parameters are added: iscallerchilddomain, isdefault
                </para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listSupportedNetworkServices</para>
              </entry>
              <entry>
                <para>The following response parameter is added: provider</para>
              </entry>
            </row>
            <row>
              <entry>
                <para>listIsos</para>
              </entry>
              <entry>
                <para>The following response parameters are added: isdynamicallyscalable,
                  sshkeyenabled </para>
              </entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="removed-api-4.2">
      <title>Deprecated APIs</title>
      <itemizedlist>
        <listitem>
          <para>addExternalLoadBalancer (Adds F5 external load balancer appliance.) </para>
        </listitem>
        <listitem>
          <para>deleteExternalLoadBalancer (Deletes a F5 external load balancer appliance added in a
            zone.) </para>
        </listitem>
        <listitem>
          <para>listExternalLoadBalancers (Lists F5 external load balancer appliances added in a
            zone.) </para>
        </listitem>
      </itemizedlist>
    </section>
  </chapter>
</book>
