We are pleased to announce the release of Libcloud 1.3.0.

This release brings many new features, improvements, bug-fixes, and drivers.

Important changes

  • RunAbove driver is now the OVH cloud driver because of changes in the platform. Users will get a deprecated error message and pointed to the website for more information
  • Fixed support for SLES/OpenSUSE 12, now checks the default certificate path (does not impact users using certifi)
  • DigitalOcean v1 API has been deprecated in favour of the new 2.0 API

Release highlights

Rancher Driver

Mario Loria contributed a full Rancher driver for our container abstraction interface. Documentation is available with examples of usage, you can use the driver to deploy containers, services, stacks or operate and maintain existing deployments! Thanks Mario.

from libcloud.container.types import Provider
from libcloud.container.providers import get_driver
from libcloud.container.base import ContainerImage

driver = get_driver(Provider.RANCHER)

connection = driver("MYRANCHERACCESSKEY", "MYRANCHERSECRETKEY",
                    host="17.23.66.4", port=443)

image = ContainerImage("hastebin", "hastebin", "rlister/hastebin", "latest",
                       driver=None)

new_service = connection.ex_deploy_service(name="excitingservice", image=image,
                                           environmentid="1e2",
                                           environment={
                                               "STORAGE_TYPE": "file"
                                           })

New API

As well as the direct get_driver API, there is now a short-hand API for users to choose.

import libcloud

cls = libcloud.get_driver(libcloud.DriverType.COMPUTE, libcloud.DriverType.COMPUTE.RACKSPACE)

Release notes

General

  • Introduced new base API for instantiating drivers (GITHUB-822) [Anthony Shaw]
  • Added certificate path for SLES12/OpenSUSE12 (GITHUB-884) [Michael Calmer]
  • Deprecate DigitalOcean v1 API support in favour of v2 API (GITHUB-889)(GITHUB-892) [Andrew Starr-Bochicchio]
  • Deprecate RunAbove cloud drivers in favour of new OVH cloud driver (GITHUB-891) [Anthony Monthe]

Compute

  • Fix reporting function for detailed admin logs in Dimension Data Driver (GITHUB-898) [Anthony Shaw]
  • Added edit firewall functionality to Dimension Data driver (GITHUB-893) [Samuel Chong]
  • Bugfix - Fixed listing nodes issue in Python 3 (LIBCLOUD-858, GITHUB-894) [Fahri Cihan Demirci]
  • Added FCU (Flexible Compute Unit) support to the Outscale driver. (GITHUB-890) [Javier M. Mellid]
  • [google compute] Add "WINDOWS" guestOsFeatures option. (GITHUB-861) [Max Illfelder]
  • When creating volumes on OpenStack with defaults for location or volume_type, newer OpenStack versions would throw errors. The OpenStack driver will now only post those arguments if non-NoneType. (GITHUB-857) [Allard Hoeve]
  • When fetching the node details of a non-existing node, OpenStack would raise a BaseHTTPError instead of returning None, as was intended. Fixed tests and code. (GITHUB-864)
  • Added ex_stop_node to the OpenStack driver. (GITHUB-865)
  • When creating volume snapshot, the arguments name and description are truly optional when working with newer OpenStack versions. The OpenStack driver will now only post thost arguments if they are non-NoneType. (GITHUB-866)
  • StorageVolumeSnapshot now has an attribute name that has the name of the snapshot if the provider supports it. This used to be .extra['name'], but that is inconsistent with Node and StorageVolume. The extra dict still holds name for backwards compatibility. (GITHUB-867) [Allard Hoeve]

Container

  • Introduced new Racher driver (GITHUB-876) [Mario Loria]
  • Fixed bug in Docker util library for fetching images from the docker hub API. API was returning 301 and redirects were not being followed. (GITHUB-862) [Anthony Shaw]

Load Balancer

  • Added fetch tags support in elb driver (GITHUB-848) [Anton Kozyrev]

Storage

  • Added storage permissions for Google Cloud Storage (GITHUB-860) [Scott Crunkleton]

Full change log can be found at here.

Special thank you

I would like to wish a special thank you to all of our community contributors for their ongoing support to the project.

Download

The release can can be downloaded from https://libcloud.apache.org/downloads.html or installed using pip:

pip install apache-libcloud==1.3.0

Upgrading

If you have installed Libcloud using pip you can also use it to upgrade it:

pip install --upgrade apache-libcloud==1.3.0

Upgrade notes

A page which describes backward incompatible or semi-incompatible changes and how to preserve the old behavior when this is possible can be found at https://libcloud.readthedocs.org/en/latest/upgrade_notes.html

Documentation

Regular and API documentation is available at https://libcloud.readthedocs.org/en/latest/

Bugs / Issues

If you find any bug or issue, please report it on our issue tracker https://issues.apache.org/jira/browse/LIBCLOUD. Don't forget to attach an example and / or test which reproduces your problem.

Thanks

Thanks to everyone who contributed and made this release possible! Full list of people who contributed to this release can be found in the CHANGES file.