<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    
      <meta name="description" content="Archive: 2016 04">
    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Archive: 2016 &raquo; April | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Archive: 2016 &raquo; April" property="og:title">
    

    

    
      <meta content="Archive: 2016 04" property="og:description">
    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/archives/2016/04/" property="og:url">
    
    

    

    <link href='/assets/global-49923225b15584efebd7a337daac5102.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/index.html"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              
              <li ><a href="/" >Home</a></li>
            
              
              <li ><a href="/about.html" >About</a></li>
            
              
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              
              <li ><a href="/community.html" >Community</a></li>
            
              
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>

          <div class="material-switch pull-right">
              <input id="theme-switch" name="theme-switch" type="checkbox" onclick="modeSwitcher()"/>
              <label for="theme-switch" class="label-default"></label>
              <span id="theme-toggle" class="theme-switch">Dark mode</span>
          </div>

        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      

  <div class="post">
  
    <h2><a href="/blog/2016/04/11/libcloud-1-0-0-rc2-released.html">Libcloud 1.0.0-rc2 released</a></h2>
  
  <span class="post-date-author">By Anthony Shaw on Apr 11, 2016</span>

  <div class="post-content">
    <p>We are pleased to announce the release of Libcloud 1.0.0-rc2.</p>

<p>This the second pre-release in the 1.0.0 series which means it brings many new
features, improvements, bug-fixes, and DNS drivers.</p>

<h3 id="release-highlights">Release highlights</h3>

<p>This includes:</p>

<ul>
  <li>Deprecated drivers that were no longer available such as Ninefold, IBM SCE <a href="http://libcloud.apache.org/blog/2016/02/16/new-drivers-deprecated-drivers.html">more details</a></li>
  <li>The Amazon EC2 driver has been changed to use region codes instead of separate drivers for each region.</li>
  <li>Introduce new <code class="language-plaintext highlighter-rouge">list_regions</code> class method on the base driver class</li>
  <li>Support for Dimension Data backup</li>
  <li>Added NSOne, LuaDNS, NearlyFreeSpeech.NET DNS drivers</li>
  <li>Added Aliyun compute, load balancer and storage drivers</li>
  <li>Added Outscale storage driver</li>
</ul>

<p>Full change log can be found at <a href="https://libcloud.readthedocs.org/en/latest/changelog.html">here</a>.</p>

<h3 id="important-breaking-change---amazon-ec2-driver-changes">Important breaking change-  Amazon EC2 driver changes</h3>

<p>The Amazon EC2 API was updated to consolidate the regional-based drivers into a single driver with a region argument in the constructor.</p>

<p>Amazon Instances should now be instantiated using the following syntax:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">libcloud.compute.types</span> <span class="kn">import</span> <span class="n">Provider</span>
<span class="kn">from</span> <span class="nn">libcloud.compute.providers</span> <span class="kn">import</span> <span class="n">get_driver</span>

<span class="n">cls</span> <span class="o">=</span> <span class="n">get_driver</span><span class="p">(</span><span class="n">Provider</span><span class="p">.</span><span class="n">EC2</span><span class="p">,</span> <span class="n">region</span><span class="o">=</span><span class="s">'us-east-i1'</span><span class="p">)</span>
<span class="n">driver</span> <span class="o">=</span> <span class="n">cls</span><span class="p">(</span><span class="s">'access key'</span><span class="p">,</span> <span class="s">'secret key'</span><span class="p">)</span>
</code></pre></div></div>

<p>This brings the Amazon API inline with the other drivers, makes it easier to maintain and switch between regions.</p>

<h3 id="bug-fixes">Bug fixes</h3>

<h4 id="general">General</h4>

<ul>
  <li>
    <p>Fix a bug with consuming stdout and stderr in the paramiko SSH client which
would manifest itself under very rare condition when a consumed chunk only
contained a single byte or part of a multi byte UTF-8 character.
[Lakshmi Kannan, Tomaz Muraus]</p>
  </li>
  <li>
    <p>Increase default chunk size from <code class="language-plaintext highlighter-rouge">1024</code> to <code class="language-plaintext highlighter-rouge">4096</code> bytes in the paramiko
SSH client. This results in smaller number of receive calls on the average.
[Tomaz Muraus]</p>
  </li>
  <li>
    <p>Fix to Dimension Data API address for Middle-East and Africa
(GITHUB-700)
[Anthony Shaw]</p>
  </li>
  <li>
    <p>Throw a more user-friendly exception on “No address associated with hostname”.
(GITHUB-711, GITHUB-714, LIBCLOUD-803)
[Tomaz Muraus, Scott Crunkleton]</p>
  </li>
  <li>
    <p>Remove deprecated provider constants with the region in the name and related
driver classes (e.g. <code class="language-plaintext highlighter-rouge">EC2_US_EAST</code>, etc.).</p>

    <p>Those drivers have moved to single provider constant + <code class="language-plaintext highlighter-rouge">region</code> constructor
argument model.
[Tomaz Muraus]</p>
  </li>
</ul>

<h3 id="new-or-deprecated-drivers">New or deprecated drivers</h3>

<h4 id="compute">Compute</h4>

<ul>
  <li>
    <p>Deprecated IBM SCE, HP Helion, OpSource, Ninefold and CloudFrames drivers, removed
driver code and tests.
(GITHUB-701, LIBCLOUD-801)
[Anthony Shaw]</p>
  </li>
  <li>
    <p>Introduced error messages (<code class="language-plaintext highlighter-rouge">libcloud.compute.deprecated</code>) for deprecated drivers
(GITHUB-701, LIBCLOUD-801)
[Anthony Shaw]</p>
  </li>
  <li>
    <p>New Compute drivers- BSNL, Indosat, Med-1, NTT-America, Internet Solutions
(GITHUB-700)
[Anthony Shaw]</p>
  </li>
  <li>
    <p>New driver for Aliyun Elastic Compute Service.
(LIBCLOUD-802, GITHUB-712)
[Sam Song]</p>
  </li>
</ul>

<h4 id="storage">Storage</h4>

<ul>
  <li>
    <p>Added Outscale storage driver
(GITHUB-730)
[Javier M. Mellid]</p>
  </li>
  <li>
    <p>New driver for Aliyun OSS Storage Service.
(LIBCLOUD-802, GITHUB-712)
[Sam Song]</p>
  </li>
</ul>

<h4 id="loadbalancer">Loadbalancer</h4>

<ul>
  <li>New driver for Aliyun SLB Loadbalancer Service.
(LIBCLOUD-802, GITHUB-712)
[Sam Song]</li>
</ul>

<h4 id="dns">DNS</h4>

<ul>
  <li>
    <p>Added NearlyFreeSpeech.net (NSFN) driver
[Ken Drayer]</p>
  </li>
  <li>
    <p>Added Lua DNS driver
[Oltjano Terpollari]</p>
  </li>
  <li>
    <p>Added NSOne driver
[Oltjano Terpollari]</p>
  </li>
</ul>

<h2 id="bug-fixes-1">Bug fixes</h2>

<ul>
  <li>
    <p>Fix a bug in the GoDaddy driver - make sure <code class="language-plaintext highlighter-rouge">host</code> attribute on the
connection class is correctly set to the hostname.
[Tomaz Muraus]</p>
  </li>
  <li>
    <p>Fix handling of <code class="language-plaintext highlighter-rouge">MX</code> records in the Gandi driver.
(GITHUB-718)
[Ryan Lee]</p>
  </li>
</ul>

<h2 id="improvements">Improvements</h2>

<h3 id="compute-1">Compute</h3>

<ul>
  <li>
    <p>Introduce new <code class="language-plaintext highlighter-rouge">list_regions</code> class method on the base driver class. This
method is to be used with provider drivers which support multiple regions and
<code class="language-plaintext highlighter-rouge">region</code> constructor argument. It allows users to enumerate available /
supported regions.
[Tomaz Muraus]</p>
  </li>
  <li>
    <p>[dimension data] added support for VMWare tools VM information inside list_nodes responses
(GITHUB-734)
[Jeff Dunham]</p>
  </li>
  <li>
    <p>[ec2] added ex_encrypted and ex_kms_key_id optional parameters to the create volume method
(GITHUB-729)
[Viktor Ognev]</p>
  </li>
  <li>
    <p>[dimension data] added support for managing host anti-affinity rules, added paging support to
all supported calls and added support for requesting priority ordering when creating ACL rules
(GITHUB-726)
[Jeff Dunham]</p>
  </li>
  <li>
    <p>Addition of Dimension Data Australia federal government region to dimension data
drivers.
(GITHUB-700)
[Anthony Shaw]</p>
  </li>
  <li>
    <p>[openstack] when creating floating IPs, added pool_id as an optional argument
(GITHUB-725)
[marko-p]</p>
  </li>
  <li>
    <p>[google compute] Added setMachineType method to allow for changing sizes of instances
(GITHUB-721)
[Eric Johnson]</p>
  </li>
  <li>
    <p>[google compute] allow bypassing image search in standard project list
(GITHUB-713)
[Max Illfelder]</p>
  </li>
  <li>
    <p>Add support for requesting a MKS token for accessing the remote console in VMware
vCloud driver
(GITHUB-706)
[Juan Font Alonso]</p>
  </li>
  <li>
    <p>Add support in VMware vCloud driver for v5.5 API, with snapshot support
(GITHUB-658)
[Juan Font Alonso]</p>
  </li>
  <li>
    <p>Added support for adding a family to an image on Google Compute Driver
(GITHUB-704)
[Max Illfelder]</p>
  </li>
  <li>
    <p>Fix to set default signature version for AWS Seoul region to v4, removed
non-supported size (hs1.xlarge)
(GITHUB-684)
[Geunwoo Shin]</p>
  </li>
  <li>
    <p>Support filtering by location in list_nodes for dimension data compute driver
fix lack of paging support
(GITHUB-691)
[Jeff Dunham]</p>
  </li>
  <li>
    <p>Support for filtering by IPv4, IPv6, network, network domain, VLAN in Dimension
data driver.
(GITHUB-694)
[Jeff Dunham]</p>
  </li>
  <li>
    <p>Added <code class="language-plaintext highlighter-rouge">Node.created_at</code> which, on supported drivers, contains the datetime the
node was first started.
(GITHUB-698)
[Allard Hoeve] [Rick van de Loo]</p>
  </li>
</ul>

<h3 id="storage-1">Storage</h3>

<ul>
  <li>
    <p>Improvements to Google Auth for Storage and Compute and MIME bug fix
(LIBCLOUD-800, GITHUB-689)
[Scott Crunkleton]</p>
  </li>
  <li>
    <p>Implement <code class="language-plaintext highlighter-rouge">get_container</code>, <code class="language-plaintext highlighter-rouge">get_object</code> and <code class="language-plaintext highlighter-rouge">upload_object_via_stream</code>
methods in the Backblaze B2 storage driver.</p>

    <p>Note: Backblaze API doesn’t upload streaming uploads so when using
<code class="language-plaintext highlighter-rouge">upload_object_via_stream</code> whole file is read and buffered in memory.
(GITHUB-696)
[Jay jshridha]</p>
  </li>
</ul>

<h3 id="backup">Backup</h3>

<ul>
  <li>Dimension Data - added additional testing, fixed bug on client response naming,
added support for adding backup clients to a backup enabled node.
(GITHUB-692, GITHUB-693, GITHUB-695)
[Jeff Dunham]</li>
</ul>

<h3 id="download">Download</h3>

<p>The release can can be downloaded from
<a href="https://libcloud.apache.org/downloads.html">https://libcloud.apache.org/downloads.html</a> or installed using pip:</p>

<pre>
pip install apache-libcloud==1.0.0-rc2
</pre>

<h3 id="upgrading">Upgrading</h3>

<p>If you have installed Libcloud using pip you can also use it to upgrade it:</p>

<pre>
pip install --upgrade apache-libcloud==1.0.0-rc2
</pre>

<h3 id="upgrade-notes">Upgrade notes</h3>

<p>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 <a href="https://libcloud.readthedocs.org/en/latest/upgrade_notes.html">https://libcloud.readthedocs.org/en/latest/upgrade_notes.html</a></p>

<h3 id="documentation">Documentation</h3>

<p>Regular and API documentation is available at <a href="https://libcloud.readthedocs.org/en/latest/">https://libcloud.readthedocs.org/en/latest/</a></p>

<h3 id="bugs--issues">Bugs / Issues</h3>

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

<h3 id="thanks">Thanks</h3>

<p>Thanks to everyone who contributed and made this release possible! Full
list of people who contributed to this release can be found in the
<a href="https://libcloud.readthedocs.org/en/latest/changelog.html">CHANGES file</a>.</p>

<p>We would like to thank the following community members for their contribution to this release:</p>

<ul>
  <li>Jeff Dunham</li>
  <li>Max Illfelder</li>
  <li>Ken Dreyer</li>
  <li>Sam Song</li>
  <li>Oltjano Terpollari</li>
  <li>Javier M. Mellid</li>
</ul>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/release-announcement.html" rel="tag">release announcement</a></p>
    </div>
  </div>
</div>


  <div class="post">
  
    <h2><a href="/blog/2016/04/06/requests-support.html">Experimental support for the requests package</a></h2>
  
  <span class="post-date-author">By Anthony Shaw on Apr 06, 2016</span>

  <div class="post-content">
    <h2 id="background">Background</h2>

<p>I’ve just pushed a branch of the latest version of libcloud using the popular <code class="language-plaintext highlighter-rouge">requests</code> package by Kenneth Reitz instead of our home-rolled HTTP client library.</p>

<p>This article is for both users and developers of libcloud. If you want to give feedback, please join the developer mailing list.</p>

<h2 id="why">Why?</h2>

<ul>
  <li>requests is the defacto standard - it would be in the standard library but agreed against to allow it to develop faster https://github.com/kennethreitz/requests/issues/2424</li>
  <li>it works with python 2.6-&gt;3.5</li>
  <li>Our SSL experience has a lot to be desired for Windows users, having to download the CA cert package and setting environment variables just to get SSL working</li>
  <li>Developers can use requests_mock for deeper integration testing</li>
  <li>less code to maintain</li>
  <li>the role of libcloud is for cloud abstraction, we provide no value in writing and maintaining our own HTTP client library</li>
</ul>

<h2 id="benefits-of-requests">Benefits of requests</h2>

<p>There are a number of benefits to having a requests package</p>

<ul>
  <li>The client library code is smaller, leaner and simpler.</li>
  <li>Requests has built in decompression support, we no longer need to support this</li>
  <li>Requests has built in RAW download, upload support, helping with our storage drivers</li>
</ul>

<h2 id="implications-of-the-change">Implications of the change</h2>

<ul>
  <li>There are no longer 2 classes (<code class="language-plaintext highlighter-rouge">LibcloudHTTPSConnection</code> and <code class="language-plaintext highlighter-rouge">LibcloudHTTPConnection</code>) to be provided to each driver, they are now 1 class - <code class="language-plaintext highlighter-rouge">LibcloudConnection</code>. You probably won’t notice this because it is a property of the <code class="language-plaintext highlighter-rouge">Connection</code> class, but
if you are developing or extending functionality then it is implicated.</li>
  <li>Unit tests will look slightly different (see below)</li>
  <li>This change broke 4200 unit tests (out of 6340)! I’ve since fixed them all since they were coupled to the original implementation, but now I don’t know if all of tests are valid.</li>
</ul>

<h2 id="testing-with-requests">Testing with requests</h2>

<p>Unit tests that were written like this:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">class</span> <span class="nc">DigitalOceanTests</span><span class="p">(</span><span class="n">LibcloudTestCase</span><span class="p">):</span>
  		  
      <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
          <span class="n">DigitalOceanBaseDriver</span><span class="p">.</span><span class="n">connectionCls</span><span class="p">.</span><span class="n">conn_classes</span> <span class="o">=</span> \	
           <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">DigitalOceanMockHttp</span><span class="p">)</span>
          <span class="n">DigitalOceanMockHttp</span><span class="p">.</span><span class="nb">type</span> <span class="o">=</span> <span class="bp">None</span>
          <span class="bp">self</span><span class="p">.</span><span class="n">driver</span> <span class="o">=</span> <span class="n">DigitalOceanBaseDriver</span><span class="p">(</span><span class="o">*</span><span class="n">DIGITALOCEAN_v1_PARAMS</span><span class="p">)</span>
</code></pre></div></div>

<p>Because of the change have been modified to (I updated all of them - so this is just for future reference)</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">class</span> <span class="nc">DigitalOceanTests</span><span class="p">(</span><span class="n">LibcloudTestCase</span><span class="p">):</span>
  		  
      <span class="k">def</span> <span class="nf">setUp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
          <span class="n">DigitalOceanBaseDriver</span><span class="p">.</span><span class="n">connectionCls</span><span class="p">.</span><span class="n">conn_class</span> <span class="o">=</span> <span class="n">DigitalOceanMockHttp</span>
          <span class="n">DigitalOceanMockHttp</span><span class="p">.</span><span class="nb">type</span> <span class="o">=</span> <span class="bp">None</span>
          <span class="bp">self</span><span class="p">.</span><span class="n">driver</span> <span class="o">=</span> <span class="n">DigitalOceanBaseDriver</span><span class="p">(</span><span class="o">*</span><span class="n">DIGITALOCEAN_v1_PARAMS</span><span class="p">)</span>
</code></pre></div></div>

<h1 id="check-it-out">Check it out!</h1>

<p>The package is on my personal apache site, you can download it and install it in a virtualenv for testing.</p>

<p><code class="language-plaintext highlighter-rouge">pip install -e http://people.apache.org/~anthonyshaw/libcloud/1.0.0-rc2-requests/apache-libcloud-1.0.0-rc2-requests.zip@feature#egg=apache-libcloud</code></p>

<p>The hashes are my <a href="http://people.apache.org/~anthonyshaw/libcloud/1.0.0-rc2-requests/">apache space</a></p>

<p>Have a look at the <a href="https://github.com/apache/libcloud/pull/728/files">PR and the change set</a> for a list of changes</p>

<h1 id="what-might-break">What might break?</h1>

<p>What I’m really looking for is for users of Libcloud to take 15 minutes, an existing (working) libcloud script, install this package in a virtualenv and just validate
that there are no regression bugs with this change.</p>

<p>I’m particularly sceptical about the storage drivers.</p>

<p>Once we have enough community feedback, we will propose a vote to merge this into trunk for future release.</p>

<h2 id="credit">Credit</h2>

<p>Credit to dz0ny on IRC for contributing some of the requests patch.</p>

  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/api.html" rel="tag">API</a>, <a href="/blog/tags/tutorial.html" rel="tag">tutorial</a></p>
    </div>
  </div>
</div>



<p class="navigation">
  

  
</p>



      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p class="">Copyright &copy; 2009-2022 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2022-03-29 21:34:03 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-9d3ec4fa3c143ff7102734d40de1aad8.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-23580482-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

  </body>
</html>
