Blog

Notice for Linode users

This is an announcement for users of the Linode driver for Libcloud who might have started experiencing issues recently.

Background

A couple of Libcloud users have reported that they have recently started experiencing issues when talking to the Linode API using Libcloud. They have received messages similar to the one shown below.

socket.error: [Errno 104] Connection reset by peer

It turns out that the issue is related to the used SSL / TLS version. For compatibility and security reasons (Libcloud also supports older Python versions), Libcloud uses TLS v1.0 by default.

Linode recently dropped support for TLS v1.0 and it now only support TLS >= v1.1. This means Libcloud won’t work out of the box anymore.

Solution

If you are experiencing this issue, you should update your code to use TLS v1.2 or TLS v1.1 as shown below.

import ssl

import libcloud.security
libcloud.security.SSL_VERSION = ssl.PROTOCOL_TLSv1_1
# or even better if your system and Python version supports TLS v1.2
libcloud.security.SSL_VERSION = ssl.PROTOCOL_TLSv1_2

# Instantiate and work with the Linode driver here...

Keep in mind that for this to work you need to have a recent version of OpenSSL installed on your system and you need to use Python >= 3.4 or Python 2.7.9.

For more details please see recently updated documentation. If you are still experiencing issues or have any questions, please feel free to reach us via the mailing list or IRC.

Note: Even if you are not experiencing any issues, it’s generally a good idea to use the highest version of TLS supported by your system and the provider you use.

Quick note on ssl.PROTOCOL_SSLv23

Python uses ssl.PROTOCOL_SSLv23 constant by default. When this constant is used, it will let client known to pick the highest protocol version which both the client and server support (it will be selecting between SSL v3.0, TLS v1.0, TLS v1.1 and TLS v1.2).

We use ssl.PROTOCOL_TLSv1 instead of ssl.PROTOCOL_SSLv23 for security and compatibility reasons. SSL v3.0 is considered broken and unsafe and using ssl.PROTOCOL_SSLv23 can result in an increased risk for a downgrade attack.

Thanks

Special thanks to Jacob Riley, Steve V, Heath Naylor and everyone from LIBCLOUD-791 who helped debug and track down the root cause of this issue.

Libcloud 0.20.0 released

We are pleased to announce the release of Libcloud 0.20.0.

This is a first release in the 0.20 series which means it brings many new features, improvements, bug-fixes, and DNS drivers.

Release highlights

  • New DNS driver for GoDaddy
  • New DNS driver for CloudFlare DNS
  • Many more improvements and API v2.1 support for the Dimension Data compute driver
  • Support for adding and configuring PTR (reverse DNS) record in RackSpace DNS driver
  • Support for preemptable instances in Google Compute driver
  • Add new eu-west-2 & us-east-2 regions to the OUTSCALE_INC & OUTSCALE_SAS drivers
  • Added C4, M4 instance types in Amazon EC2 driver
  • Add support for multiple regions in Aurora compute driver
  • GoogleStorageDriver can now use either our S3 authentication or other Google Cloud Platform OAuth2 authentication methods.
  • Removed DreamHosts Compute Driver, DreamHosts users will now use the OpenStack Node driver since DreamHosts are OpenStack API compliant
  • and much more!

Full change log can be found at here.

Download

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

pip install apache-libcloud==0.20.0

Upgrading

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

pip install --upgrade apache-libcloud==0.20.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.

Anthony Shaw (anthonyshaw) joins our team

Please help us extend a warm welcome to our newest team member Anthony Shaw!

The Project Management Committee (PMC) for Apache Libcloud has invited Anthony Shaw to join us as a committer and a PMC member and we are pleased to announce that he has accepted.

Anthony has joined the community fairly recently, but he has already made a lot of substantial contributions. Those contributions range from new Dimension Data drivers and various related improvements to a proposal for a new backup API for Backup as a Service products and projects.

While we are talking about the new backup API - we would like to encourage everyone who is either a service provider offering Backup as a Service product or a person interested in using this API to join us and participate in the discussion. The more feedback we get, the better and more widely applicable we can make this new API.

For anyone who would like to know more about Anthony here is his short bio:

Anthony Shaw works for the global system integrator Dimension Data as Head of Innovation. Anthony has been working in the hosting/service provider industry for the last 10 years for MSPs within Europe, North America and Australia in various Product Management and Product Development roles. Anthony is an open-source advocate and has been promoting the Libcloud project internally to Dimension Data for the last 9 months as well as maintaining its driver.

And in his own words:

I think we will continue to see consolidation in IaaS providers over the next 12 months, so likelihood is the number of drivers will reduce, but the importance of being cloud agnostic to people is becoming more apparent as some are already being burnt by integrations into APIs that companies like Dell and Ninefold have pulled the plug on. Libcloud is a key project for developers not wanting to lock themselves too heavily to a vendor. I would also like to see expansion of additional services like backup, load balancing and containers so that users can still take advantages of these features through our driver.

We are happy to have him in our team and we are looking forward to his future participation and contributions.

Libcloud 0.19.0 released

We are pleased to announce the release of Libcloud 0.19.0.

This is a first release in the 0.19 series which means it brings many new features, improvements, bug-fixes, and DNS drivers.

Release highlights

Full change log can be found at here.

Download

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

pip install apache-libcloud==0.19.0

Upgrading

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

pip install --upgrade apache-libcloud==0.19.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/v0.19.0/

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.

Libcloud is participating in Hacktoberfest

Github and DigitalOcean are organizing Hacktoberfest again this year.

Hacktoberfest is a month-long celebration of open source software where people are encouraged to contribute to different open source projects. Each user who submits four pull requests to any Github hosted open source project of their choice will receive a free t-shirt.

Hacktoberfest 2015 t-shirt.

This year we are also happy to announce that we have been selected as one of the highlighted Python projects which users are invited to check, play with it and contribute to.

We think this is a great opportunity for both, long time users and contributors, but especially people who are new to open source to learn how open source works and participate.

Having said that, we would like to invite anyone who is interested to participate and contribute to our project. You can find more information on contributing to Libcloud in our contribution guide.

For more information about the Hacktoberfest project itself and information on how to sign up, please visit the official website and announcement blog post from Github and DigitalOcean.