-*- coding: utf-8 -*- Changes with Apache Libcloud 0.7.1: *) General: - Fix a minor bug in debug mode (LIBCLOUD_DEBUG=/dev/stderr) which has been introduced when adding Python 3 compatibility layer. [Paul Querna] - Update OpenStack Auth API endpoint paths. [Paul Querna] Changes with Apache Libcloud 0.7.0: *) General: - Add support for Python 3.x. [Tomaz Muraus] - Remove old deprecated paths. [Tomaz Muraus] *) Compute: - Update CloudSigma Zurich API endpoint address. [Tomaz Muraus] - Add new US Las Vegas endpoint to CloudSigma driver (types.CLOUDSIGMA_US) [Tomaz Muraus] - Allow user to specify drive type (hdd, ssd) when creating a CloudSigma server. Note 'ssd' drive_type doesn't work with the API yet. [Tomaz Muraus] - Update OpenStack 1.1 driver to comply with the API specs. Need to make another call to retrieve node name and ip addresses when creating a node, because the first call only returns an id an the password. ; GITHUB-40 [Dave King] - Add ex_node_ids argument to the EC2 driver list_nodes method. ; GITHUB-39 [Suvish Vt] - If OpenStack Auth 2.0 API is used, also parse out tenant id and name and save it on the connection class (conn.tenant['id'], conn.tenant['name']). [Tomaz Muraus] - Add new "Cluster Compute Eight Extra Large" size to the Amazon EC2 driver. [Tomaz Muraus] - Add the following extension methods to the EC2 compute driver: ex_describe_all_addresses, ex_associate_addresses, ex_start_node, ex_stop_node. [Suvish Vt] - Change public_ip and private_ip attribute on the Node object to the public_ips and private_ips since both of the objects are always a list. Note: For backward compatibility you can still access public_ip and private_ip attributes, but this will be removed in the next release. [Tomaz Muraus] - Fix an inconsistency in IBM SBC driver and make sure public_ips and private_ips attributes are a list. [Tomaz Muraus] - Fix an inconsistency in OpSource driver and make sure public_ips is an empty list ([]), not 'unknown' [Tomaz Muraus] - Updated support for OpenNebula.org v1.4, v2.x, and v3.x APIs and included additional compute tests validating functionality; LIBCLOUD-121 [Hutson Betts] *) Load-balancer: - Add ex_member_address argument to the Rackspace driver list_balancers method. If this argument is provided, only loadbalancers which have a member with the provided IP address attached are returned. [Tomaz Muraus] 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.