                                                        -*- coding: utf-8 -*-

Changes with Apache Libcloud 0.6.2:

  *) General

     - Fix a bug in PollingConnection class - actually use and don't ignore
       the poll_interval
       [Tomaz Muraus]

  *) Compute:

     - Add support for Auth 2.0 API (keystone) to the OpenStack Auth
       connection class.
       [Brad Morgan]

     - Add list_locations method to the OpenStack driver and fix some
       inconsistencies in the OpenStack driver extension method signatures.
       [Brad Morgan]

     - Update Amazon EC2 driver and pricing data to support a new region -
       US West 2 (Oregon)
       [Tomaz Muraus]

     - Expose 'CLOUDSTACK' provider. This driver can be used with an
       arbitrary CloudStack installation.
       [Tomaz Muraus]

  *) Storage:

     - Update Amazon S3 driver to support a new region - US West 2 (Oregon)
       [Tomaz Muraus]

  *) DNS:

      - Increase the default poll interval in the Rackspace driver to 2.5
        seconds.
        [Tomaz Muraus]

      - Fix a bug in Rackspace Cloud DNS driver and make sure to throw an
        exception if an unexpected status code is returned. Reported by
        "jeblair".
        [Tomaz Muraus]

Changes with Apache Libcloud 0.6.1:

  *) General:

     - Modify ParamikoSSHClient.connect so it supports authentication using a
       key file ; LIBCLOUD-116
       [Jay Doane]

     - User must now explicitly specify a path when using LIBCLOUD_DEBUG
       environment variable ; LIBCLOUD-95.
       [daveb, Tomaz Muraus]

     - Add new XmlResponse and JsonResponse base class and modify all the
       driver-specific response classes to inherit from one of those two
       classes where applicable.
       [Caio Romão]

     - Add new 'PollingConnection' class. This class can work with 'async'
       APIs. It sends and an initial request and then periodically poll the API
       until the job has completed or a timeout has been reached.
       [Tomaz Muraus]

  *) Compute:

     - Add 24GB size to the GoGrid driver
       [Roman Bogorodskiy]

     - Fix API endpoint URL in the Softlayer driver
       [Tomaz Muraus]

     - Add support for OpenNebula 3.0 API ; LIBCLOUD-120
       [Hutson Betts]

     - Add more attributes to the extra dictionary in the EC2 driver ;
       GITHUB-31
       [Juan Carlos Moreno]

     - Fix IP address assignment in the EC2 driver. Don't include "None" in the
       public_ip and private_ip Node list attribute.
       [Tomaz Muraus]

     - Make deploy_node functionality more robust and don't start deployment if
       node public_ip attribute is an empty list.
       [Tomaz Muraus]

     - Support SSH key authentication when using deploy_node.
       [Russell Haering, Tomaz Muraus]

     - Enable deploy_node functionality in the EC2 driver using SSH key
       authentication
       [Russell Haering, Tomaz Muraus]

     - Enable paramiko library debug log level if LIBCLOUD_DEBUG is used and
       paramiko is installed.
       [Tomaz Muraus]

     - Fix the request signature generation in the base EC2 compute driver.
       If the endpoint is using a non-standard port (Eucalyptus based
       installations), append it to the hostname used to generate the
       signature.
       [Simon Delamare]

     - Add new "unavailable" state to the BrightboxNodeDriver class.
       [Tim Fletcher]

     - Increase a PollingConnection timeout in the CloudStack connection
       and fix the context dictionary creation in the _async_request method.
       [gigimon]

     - Fix networks retrieval in the CloudStack driver create_node method.
       Also only pass 'networkids' field to the API if there are any networks
       available.
       [gigimon, Tomaz Muraus]

     - Fix list_nodes in the CloudStack driver. Private IPs aren't always
       available.
       [Tomaz Muraus]

  *) Load-baancer:

     - Add a missing argument to the method call inside
       LoadBalancer.attach_compute_node and Driver.balancer_attach_compute_node.
       [Tim Fletcher, Tomaz Muraus]

     - Add missing destroy() method to the LoadBalancer class.
       [Tomaz Muraus]

  *) DNS:

     - New drivers for Rackspace Cloud DNS (US and UK region)
       [Tomaz Muraus]

     - Add list_record_types() method. This method returns a list of record
       types supported by the provider.
       [Tomaz Muraus]

Changes with Apache Libcloud 0.6.0-beta1

  *) General:

    - All the driver classes now inherit from the BaseDriver class
      [Tomaz Muraus]

    - Prefer simplejson (if available) over json module; LIBCLOUD-112
      [Geoff Greer]

    - Update compute demo and change the syntax of test credentials stored in
      test/secrets.py-dist ; LIBCLOUD-111
      [Mike Nerone]

    - Enable SSL certificate verification by default and throw an exception
      if CA certificate files cannot be found. This can be overridden by
      setting libcloud.security.VERIFY_SSL_CERT_STRICT to False.
      [Tomaz Muraus]

  *) Compute:

     - Support for 1.1 API and many other improvements in the OpenStack driver ;
       LIBCLOUD-83
       [Mike Nerone, Paul Querna, Brad Morgan, Tomaz Muraus]

     - Add some extra methods to the Gandi.net driver ; LIBCLOUD-115
       [Aymeric Barantal]

     - Add ex_delete_image method to the Rackspace driver ; GITHUB-27
       [David Busby]

     - Linode driver now supports new 'Japan' location
       [Jed Smith]

     - Rackspace driver now inherits from the OpenStack one instead of doing
       it vice versa.; LIBCLOUD-110
       [Mike Nerone]

     - Properly populate NodeImage "details" dictionary in the Rackspace
       compute driver.; LIBCLOUD-107
       [Lucy Mendel]

     - Fix a bug in Eucalyptus driver ex_describe_addresses method.
       [Tomaz Muraus]

     - Add the following new extenstion methods to the Rackspace driver:
       ex_resize, ex_confirm_resize, ex_revert_resize.
       [Tomaz Muraus]

     - Also allow user to pass in Node object to some ex_ methods in
       the Rackspace compute driver.
       [Tomaz Muraus]

     - Throw an exception in deploy_node if paramiko library is not
       available
       [Tomaz Muraus]

     - Fix chmod argument value which is pased to the sftpclient.put
       method; GITHUB-17
       [John Carr]

     - New driver for Ninefold.com; LIBCLOUD-98
       [Benno Rice]

  *) Storage:

     - New driver for Google Storage based on the v1.0 / legacy API
       [Tomaz Muraus]

     - New driver for Ninefold.com; GITHUB-19
       [Benno Rice]

     - Fix a bug in uploading an object with some versions of Python 2.7
       where httplib library doesn't automatically call str() on the
       header values.
       [Tomaz Muraus]

     - Allow users to upload (create) 0-bytes large (empty) objects
       [Tomaz Muraus]

  *) Load-balancer:

     - New driver for Rackspace UK location
       [Tomaz Muraus]

     - New driver for Ninefold.com; LIBCLOUD-98
       [Benno Rice]

  *) DNS:

   - Drivers for Linode DNS and Zerigo DNS
     [Tomaz Muraus]

   - Brand new DNS API!
     [Tomaz Muraus]

Changes with Apache Libcloud 0.5.2

  *) Compute:
     - New driver for serverlove.com and skalicloud.com
       [Tomaz Muraus]

     - Fix node name and tag handling in the Amazon EC2 driver
       [Wiktor Kolodziej]

     - Fix pricing and response handling in the OpenStack driver
       [Andrey Zhuchkov]

     - Fix deploy_node() method and make it more robust
       [Tomaz Muraus]

     - Users can now pass file like objects to ScriptDeployment and
       SSHKeyDeployment constructor.
       [Tomaz Muraus]

     - Include node tags when calling list_nodes() in the Amazon EC2
       driver
       [Trevor Pounds]

     - Properly handle response errors in the Rackspace driver and
       only throw InvalidCredsError if the returned status code is 401
       [Brad Morgan]

     - Fix the create_node method in the Nimbus driver and make the
       "ex_create_tag" method a no-op, because Nimbus doesn't support creating
       tags.
       [Tomaz Muraus]

    *) Storage:

       - Fix handling of the containers with a lot of objects. Now a LazyList
         object is returned when user calls list_container_objects() method
         and this object transparently handles pagination.
       [Danny Clark, Wiktor Kolodziej]

Changes with Apache Libcloud 0.5.0

    *) Existing APIs directly on the libcloud.* module have been
       deprecated and will be removed in version 0.6.0.  Most methods
       were moved to the libcloud.compute.* module.

    *) Add new libcloud.loadbalancers API, with initial support for:
        - GoGrid Load Balancers
        - Rackspace Load Balancers
      [Roman Bogorodskiy]

    *) Add new libcloud.storage API, with initial support for:
        - Amazon S3
        - Rackspace CloudFiles
       [Tomaz Muraus]

    *) Add new libcloud.compute drivers for:
        - Bluebox [Christian Paredes]
        - Gandi.net [Aymeric Barantal]
        - Nimbus [David LaBissoniere]
        - OpenStack [Roman Bogorodskiy]
        - Opsource.net [Joe Miller]

    *) Added "pricing" module and improved pricing handling.
       [Tomaz Muraus]

    *) Updates to the GoGrid compute driver:
        - Use API version 1.0.
        - Remove sandbox flag.
        - Add ex_list_ips() to list IP addresses assigned to the account.
        - Implement ex_edit_image method which allows changing image attributes
          like name, description and make image public or private.
       [Roman Bogorodskiy]

    *) Updates to the Amazon EC2 compute driver:
        - When creating a Node, use the name argument to set a Tag with the
          value.  [Tomaz Muraus]
        - Add extension method for modifying node attributes and changing the
          node size. [Tomaz Muraus]
        - Add support for the new Amazon Region (Tokyo). [Tomaz Muraus]
        - Added ex_create_tags and ex_delete_tags. [Brandon Rhodes]
        - Include node Elastic IP addresses in the node public_ip attribute
          for the EC2 nodes. [Tomaz Muraus]
        - Use ipAddress and privateIpAddress attribute for the EC 2node public
          and private ip. [Tomaz Muraus]
        - Add ex_describe_addresses method to the EC2 driver. [Tomaz Muraus]

    *) Updates to the Rackspace CloudServers compute driver:
        - Add ex_rebuild() and ex_get_node_details() [Andrew Klochkov]
        - Expose URI of a Rackspace node to the node meta data. [Paul Querna]

    *) Minor fixes to get the library and tests working on Python 2.7 and PyPy.
       [Tomaz Muraus]

Changes with Apache Libcloud 0.4.2 (Released January 18, 2011)

    *) Fix EC2 create_node to become backward compatible for
       NodeLocation.
       [Tomaž Muraus]

    *) Update code for compatibility with CPython 2.5
       [Jerry Chen]

    *) Implement ex_edit_node method for GoGrid driver which allows
       changing node attributes like amount of RAM or description.
       [Roman Bogorodskiy]

    *) Add ex_set_password and ex_set_server_name to Rackspace driver.
       [Peter Herndon, Paul Querna]

    *) Add Hard and Soft reboot methods to Rackspace driver.
       [Peter Herndon]

    *) EC2 Driver availability zones, via ex_list_availability_zones;
       list_locations rewrite to include availablity zones
       [Tomaž Muraus]

    *) EC2 Driver Idempotency capability in create_node; LIBCLOUD-69
       [David LaBissoniere]

    *) SSL Certificate Name Verification:
       - libcloud.security module
       - LibcloudHTTPSConnection, LibcloudHTTPConnection (alias)
       - Emits warning when not verifying, or CA certs not found

    *) Append ORD1 to available Rackspace location, but keep in the
       same node as DFW1, because it's not readable or writeable from
       the API.
       [Per suggestion of Grig Gheorghiu]

    *) ex_create_ip_group, ex_list_ip_groups, ex_delete_ip_group,
       ex_share_ip, ex_unshare_ip, ex_list_ip_addresses additions
       to Rackspace driver
       [Andrew Klochkov]

    *) New driver for CloudSigma
       [Tomaž Muraus]

    *) New driver for Brightbox Cloud. LIBCLOUD-63
       [Tim Fletcher]

    *) Deployment capability to ElasticHosts
       [Tomaž Muraus]

    *) Allow deploy_node to use non-standard SSH username and port
       [Tomaž Muraus]

    *) Added Rackspace UK (London) support
       [Chmouel Boudjnah]

    *) GoGrid driver: add support for locations, i.e. listing
       of locations and creation of a node in specified
       location
       [Roman Bogorodskiy]

    *) GoGrid and Rackspace drivers: add ex_save_image() extra
       call to convert running node to an image
       [Roman Bogorodskiy]

    *) GoGrid driver: add support for creating 'sandbox' server
       and populate isSandbox flag in node's extra information.
       [Roman Bogorodskiy]

    *) Add ImportKeyPair and DescribeKeyPair to EC2. LIBCLOUD-62
       [Philip Schwartz]

    *) Update EC2 driver and test fixtures for new API.
       [Philip Schwartz]

Changes with Apache Libcloud 0.4.0 [Released October 6, 2010]

    *) Add create keypair functionality to EC2 Drivers. LIBCLOUD-57
       [Grig Gheorghiu]

    *) Improve handling of GoGrid accounts with limited access
       API keys. [Paul Querna]

    *) New Driver for ElasticHosts. LIBCLOUD-45
       [Tomaz Muraus]

    *) Use more consistent name for GoGrid driver and use http
       POST method for 'unsafe' operations
       [Russell Haering]

    *) Implement password handling and add deployment support
       for GoGrid nodes.
       [Roman Bogorodskiy]

    *) Fix behavior of GoGrid's create_node to wait for a Node ID.
       [Roman Bogorodskiy]

    *) Add ex_create_node_nowait to GoGrid driver if you don't need to
       wait for a Node ID when creating a node.
       [Roman Bogorodskiy]

    *) Removed libcloud.interfaces module.
       [Paul Querna]

    *) Removed dependency on zope.interfaces.
       [Paul Querna]

    *) RimuHosting moved API endpoint address.
       [Paul Querna]

    *) Fix regression and error in GoGrid driver for parsing node objects.
       [Roman Bogorodskiy]

    *) Added more test cases for GoGrid driver. LIBCLOUD-34
       [Roman Bogorodskiy, Jerry Chen]

    *) Fix parsing of Slicehost nodes with multiple Public IP addresses.
       [Paul Querna]

    *) Add exit_status to ScriptDeployment. LIBCLOUD-36
       [Paul Querna]

    *) Update prices for several drivers.
       [Brad Morgan, Paul Querna]

    *) Update Linode driver to reflect new plan sizes.
       [Jed Smith]

    *) Change default of 'location' in Linode create_node. LIBCLOUD-41
       [Jed Smith, Steve Steiner]

    *) Document the Linode driver.
       [Jed Smith]

    *) Request a private, LAN IP address at Linode creation.
       [Jed Smith]

Changes with Apache Libcloud 0.3.1 [Released May 11, 2010]

    *) Updates to Apache License blocks to correctly reflect status as an
       Apache Project.

    *) Fix NOTICE file to use 2010 copyright date.

    *) Improve error messages for when running the test cases without
       first setting up a secrets.py

Changes with Apache Libcloud 0.3.0 [Tagged May 6, 2010, not released]

    *) New Drivers for:
      - Dreamhost
      - Eucalyptus
      - Enomaly ECP
      - IBM Developer Cloud
      - OpenNebula
      - SoftLayer

    *) Added new deployment and bootstrap API.

    *) Improved Voxel driver.

    *) Added support for Amazon EC2 Asia Pacific (Singapore) Region.

    *) Improved test coverage for all drivers.

    *) Add support for multiple security groups in EC2.

    *) Fixed bug in Rackspace and RimuHosting when using multiple threads.

    *) Improved debugging and logging of HTTP requests.

    *) Improved documentation for all classes and methods.

Changes with Apache Libcloud 0.2.0 [Tagged February 2, 2010]

    *) First public release.
