<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Blog | 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="Blog" property="og:title">
    

    

    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/page/13/" property="og:url">
    
    

    

    <link href='/assets/global-fba222d7b312b9e480173d85ea10a926.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><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      <div class="row section page-content">
  <div class="col-lg-8">
    <h1>Blog</h1>

<div class="posts">
  
  
    
      <div class="post">
  
    <h2><a href="/blog/2014/02/18/libcloud-0-14-and-google-cloud-platform.html">Libcloud 0.14 and Google Cloud Platform</a></h2>
  

  
  <span class="post-date-author">By Rick Wright <span style="display:none">(<a href="https://plus.google.com/103696237869565347624?rel=author">Google+</a>)</span>on Feb 18, 2014</span>

  <div class="post-content">
    <p><em>This is a guest post by <a href="https://github.com/wrigri">Rick Wright</a>. Rick is an engineer at Google and
the main contributor to the Libcloud Google Compute Engine driver.</em></p>

<p>As anyone following this blog knows, Libcloud 0.14 was <a href="/blog/2014/01/22/libcloud-0-14-0-released.html">recently released</a>.
Included in this release is new support for the Google Compute Engine service
that was recently made generally available.</p>

<p>The first Libcloud driver for Google Compute Engine was initially released last
summer, and has been continually updated to support new Compute Engine
features. Support for the Compute Engine Load Balancer was also recently added.</p>

<p>Libcloud had previously added support for Google Cloud Storage through the S3
compatibility API.</p>

<p>In this post, we’ll show you how to get up and running with Google Compute
Engine with Libcloud, show you how to create some instances (nodes) and point
you to additional resources. We also show you how you can start up 20
instances in under a minute.</p>

<div class="imginline">
  <p><a href="https://cloud.google.com/" target="_blank">
  <img src="/images/posts/gce/image03.png" class="img-responsive inline" />
  </a></p>
</div>

<h2 id="getting-started">Getting Started</h2>

<p>If you haven’t yet signed up for Google Compute Engine, more information can
be found on the <a href="https://cloud.google.com/">Google Cloud Platform</a> site. We hope that you will look at
the Google Cloud Platform and consider Compute Engine for workloads of any
size.</p>

<p>If you are familiar with Libcloud, using the driver for Compute Engine will
also be familiar to you as nearly all of the standard Libcloud API methods for
Compute and Load Balancing are supported by the Compute Engine drivers.</p>

<h2 id="setting-up-authentication">Setting up Authentication</h2>

<p>Google Compute Engine uses OAuth2 for authentication and Libcloud supports two
different authentication methods for Compute Engine: Service Accounts and
Installed Applications. More information can be found about these options in
the <a href="https://libcloud.readthedocs.org/en/latest/compute/drivers/gce.html">driver documentation</a>, but here is a simple walk-through for getting
your Service Account credentials (note that the Service Account authentication
requires the PyCrypto library):</p>

<p>From the Console (<a href="https://cloud.google.com/console">https://cloud.google.com/console</a>), select your project. When
your project is open, select “APIs &amp; auth” and then “Credentials” as shown
below:</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image01.png" class="img-responsive inline" /></p>
</div>

<p>To create a new Service Account ID, click on “Create New Client ID”</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image04.png" class="img-responsive inline" /></p>
</div>

<p>Select “Service account” and click “Create Client ID”</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image00.png" class="img-responsive inline" /></p>
</div>

<p>This will create and download a PCKS-12 private key to your local machine. You
will need to convert this to a .pem format key. (See additional instructions
in the <a href="https://libcloud.readthedocs.org/en/latest/compute/drivers/gce.html">driver documentation</a>).</p>

<div class="imginline">
  <p><img src="/images/posts/gce/image02.png" class="img-responsive inline" /></p>
</div>

<p>To connect to Compute Engine from Libclould, you will need to provide both the
“Email address” for the service account and the path to the key file.</p>

<h2 id="creating-an-instance">Creating an Instance</h2>

<p>The Compute Engine driver supports the normal Libcloud ways of doing things.
For example, to create the driver you would do something like this:</p>

<pre>
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
Driver = get_driver(Provider.GCE)
gce = Driver('your_service_account_email', 'path_to_pem_file',
             datacenter='us-central1-a',
             project='your_project_id')
</pre>

<p>Then, you may want to get a list of machine sizes or images to use for your
node creation:</p>

<pre>
sizes = gce.list_sizes()
images = gce.list_images()
</pre>

<p>and then filter them to find the correct size/image object to create your
node. For example:</p>

<pre>
size_obj = [s for s in sizes if s.id == 'n1-standard-1'][0]
image_obj = [i for i in images if i.name == 'debian-7'][0]
</pre>

<p>Finally, you would create the node using the create_node() method:</p>

<pre>
new_node = gce.create_node(name='my_node', size=size_obj,
                           image=img_obj)
</pre>

<p>The GCE driver also supports the ability to pass in size/image by name instead
of by object, so you could create your new node like this, without looking up
the sizes/images:</p>

<pre>
new_node = gce.create_node(name='my_node', size='n1-standard-1',
                           image='debian-7')
</pre>

<p>In this case a new node will be created using the “n1-standard-1” machine
type and will use the latest “debian-7” image that is available.</p>

<h2 id="creating-multiple-instances">Creating Multiple Instances</h2>

<p>We have added an extra method to the Compute Engine driver to help in the
creation of multiple instances/nodes in parallel.  This is the
“ex_create_multiple_nodes()” method, and it can be used like this:</p>

<pre>
base_name = 'multiple-nodes'
number = 20
start_time = time.time()
multi_nodes = gce.ex_create_multiple_nodes(
    base_name, 'n1-standard-1', 'debian-7', number)
end_time = time.time()

print('Created the following %s nodes in %.2f seconds' % (
   number, end_time-start_time))

for node in multi_nodes:
   print('   %s' % node.name)
</pre>

<p>Running this gives the following output (timing will likely vary somewhat):</p>

<pre>
Created the following 20 nodes in 35.77 seconds
  multiple-nodes-000
  multiple-nodes-001
  multiple-nodes-002
  multiple-nodes-003
  multiple-nodes-004
  ...
</pre>

<h2 id="onward">Onward</h2>

<p>This post showed you how to get started, and additional example code can be
found in the <a href="https://github.com/apache/libcloud/blob/trunk/demos/gce_demo.py">Libcloud Compute Engine demo code</a>. The demo code can show you
how to use most of the features of the driver, including: Creating disks,
firewalls and addresses; setting tags; attaching and detaching disks and
deleting resources. There is <a href="https://github.com/apache/libcloud/blob/trunk/demos/gce_lb_demo.py">separate demo code</a> for the Load Balancer
functions which shows how to quickly set up 3 web servers with a Load Balancer
controlling the traffic to them. In addition, the driver documentation
contains the documentation for the extra methods that cover nearly all of the
features of the Compute Engine API.</p>

<p>We are excited to be able to contribute to the Libcloud project and hope that
you will find it useful. We like working with Libcloud and have used it as the
basis for contributing code to other open source projects such as <a href="http://ansible.com/">Ansible</a>
and <a href="http://www.saltstack.com/">SaltStack</a>. If you run into problems or find bugs, please
<a href="https://issues.apache.org/jira/browse/LIBCLOUD">report them</a> (or send a <a href="https://github.com/apache/libcloud">pull request</a>) and we will be happy to continue
to fix and enhance the Compute Engine driver in Libcloud.</p>


  </div>

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

    
  
    
      <div class="post">
  
    <h2><a href="/blog/2014/02/17/sebastien-goasguen-joins-our-team.html">Sebastien Goasguen (sebgoa) joins our team</a></h2>
  

  
  <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Feb 17, 2014</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Sebastien
Goasguen (sebgoa) to join us as a committer and a PMC member. We are pleased
to announce that he has accepted.</p>

<p>Sebastien is no stranger to the Libcloud project. He has been contributing and
actively participating in the Libcloud community for quite a while now.</p>

<p>On top of that, he is also a PMC member at the Apache CloudStack project and
our local “CloudStack guy”.</p>

<p>We are happy to have him and some direct CloudStack expertise in our team.</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/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

    
  
    
      <div class="post">
  
    <h2><a href="/blog/2014/02/14/call-for-participation-in-gsoc-2014.html">Call for Participation in Google Summer of Code 2014</a></h2>
  

  
  <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Feb 14, 2014</span>

  <div class="post-content">
    <div class="imginline">
  <p><a href="/gsoc-2014.html">
  <img src="/images/gsoc/gsoc2014_2.jpg" class="img-responsive inline" />
  </a></p>
</div>

<p>If you would like to participate in Google Summer of Code 2014 and work on
Apache Libcloud, we invite you to read the following blog post for more
information - <a href="http://www.tomaz.me/2014/02/11/libcloud-gsoc-cfp.html">Libcloud Google Summer of Code 2014 Call for Participation</a>.</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/gsoc.html" rel="tag">gsoc</a>, <a href="/blog/tags/gsoc2014.html" rel="tag">gsoc2014</a></p>
    </div>
  </div>
</div>

    
  
    
      <div class="post">
  
    <h2><a href="/blog/2014/02/11/libcloud-0-14-1-and-cloudsigma.html">Libcloud 0.14.1 and the new CloudSigma driver</a></h2>
  

  
  <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Feb 11, 2014</span>

  <div class="post-content">
    <p>Libcloud 0.14.1 has been <a href="/blog/2014/02/08/libcloud-0-14-1-released.html">release recently</a>. Among other bug fixes,
improvements and new features, this release also includes a brand new compute
driver for <a href="https://www.cloudsigma.com">CloudSigma</a> API 2.0 with an <a href="https://libcloud.readthedocs.org/en//latest/compute/drivers/cloudsigma.html">extensive documentation</a>.</p>

<div class="imginline">
  <p><a href="https://www.cloudsigma.com" target="_blank">
  <img src="/images/posts/2014-02-11-libcloud-0-14-1-and-cloudsigma/cloudsigma.png" class="img-responsive inline" />
  </a></p>
</div>

<p>If you want to learn more about this new driver, I encourage you to check a guest
post I wrote on the CloudSigma blog which shows some examples of how to use this new
driver - <a href="https://www.cloudsigma.com/2014/02/11/cloudsigma-api-v2-0-is-now-supported-in-libcloud/">CloudSigma API v2.0 is now supported in Libcloud</a>.</p>


  </div>

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

    
  
    
      <div class="post">
  
    <h2><a href="/blog/2014/02/08/libcloud-0-14-1-released.html">Libcloud 0.14.1 released</a></h2>
  

  
  <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Feb 08, 2014</span>

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

<p>This release includes some bug-fixes, improvements and new features.</p>

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

<ul>
  <li>New driver for <a href="https://libcloud.readthedocs.org/en//latest/compute/drivers/cloudsigma.html">CloudSigma API 2.0</a></li>
  <li>Improvements in the OpenStack driver</li>
  <li>Support for records with multiple values in the Route53 DNS driver</li>
  <li>Support for paging through zones and records in the Rackspace DNS driver</li>
</ul>

<p>Full change log can be found at <a href="https://libcloud.readthedocs.org/en//latest/changelog.html#changes-with-apache-libcloud-0-14-1">here</a>.</p>

<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==0.14.1
</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==0.14.1
</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#libcloud-0-14-1">https://libcloud.readthedocs.org/en/latest/upgrade_notes.html#libcloud-0-14-1</a></p>

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

<p>Regular and API documentation is available at <a href="https://libcloud.readthedocs.org/en/v0.14.1/">https://libcloud.readthedocs.org/en/v0.14.1/</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-with-apache-libcloud-0-14-1">CHANGES file</a>.</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-users/201309.mbox/%3CCAJMHEmL4-Xuysx13z1EDwq-1K95eDyANqgY2tYGUT-MB5Sz4bQ%40mail.gmail.com%3E">release announcement</a>.</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/release-announcement.html" rel="tag">release announcement</a></p>
    </div>
  </div>
</div>

    
  
</div>

<p class="navigation">
  
    
      <span class="alignleft"><a href="/blog/page/14/">« Previous Page</a></span>
    
  

  
    
      
        <span class="pull-right"><a href="/blog/page/12/">Next Page »</a></span>
      
    
  
</p>


  </div>

  <div class="col-lg-3 col-lg-offset-1">
    <h2>Archive</h1>
    <ul>
      <li> <a href="/blog/archives/2022/03/"> March 2022</a> &nbsp;(1)</li><li> <a href="/blog/archives/2021/11/"> November 2021</a> &nbsp;(2)</li><li> <a href="/blog/archives/2021/06/"> June 2021</a> &nbsp;(1)</li><li> <a href="/blog/archives/2021/01/"> January 2021</a> &nbsp;(2)</li><li> <a href="/blog/archives/2020/09/"> September 2020</a> &nbsp;(1)</li><li> <a href="/blog/archives/2020/08/"> August 2020</a> &nbsp;(2)</li><li> <a href="/blog/archives/2020/06/"> June 2020</a> &nbsp;(2)</li><li> <a href="/blog/archives/2020/04/"> April 2020</a> &nbsp;(2)</li><li> <a href="/blog/archives/2020/03/"> March 2020</a> &nbsp;(1)</li><li> <a href="/blog/archives/2020/01/"> January 2020</a> &nbsp;(2)</li><li> <a href="/blog/archives/2019/12/"> December 2019</a> &nbsp;(1)</li><li> <a href="/blog/archives/2019/11/"> November 2019</a> &nbsp;(1)</li><li> <a href="/blog/archives/2019/08/"> August 2019</a> &nbsp;(2)</li><li> <a href="/blog/archives/2019/05/"> May 2019</a> &nbsp;(1)</li><li> <a href="/blog/archives/2018/11/"> November 2018</a> &nbsp;(1)</li><li> <a href="/blog/archives/2018/06/"> June 2018</a> &nbsp;(1)</li><li> <a href="/blog/archives/2018/03/"> March 2018</a> &nbsp;(1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> &nbsp;(1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> &nbsp;(2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> &nbsp;(1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> &nbsp;(3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> &nbsp;(1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> &nbsp;(2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> &nbsp;(2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> &nbsp;(4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> &nbsp;(1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> &nbsp;(1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> &nbsp;(2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> &nbsp;(1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> &nbsp;(1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> &nbsp;(2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> &nbsp;(1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> &nbsp;(8)</li><li> <a href="/blog/archives/2014/01/"> January 2014</a> &nbsp;(4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> &nbsp;(3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> &nbsp;(2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> &nbsp;(1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> &nbsp;(1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> &nbsp;(1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> &nbsp;(1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> &nbsp;(1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> &nbsp;(2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> &nbsp;(2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> &nbsp;(1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> &nbsp;(1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> &nbsp;(1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> &nbsp;(2)</li><li> <a href="/blog/archives/2012/04/"> April 2012</a> &nbsp;(1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> &nbsp;(2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> &nbsp;(3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> &nbsp;(1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> &nbsp;(1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> &nbsp;(1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> &nbsp;(1)</li>
    </ul>
  </div>
</div>


      <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 09:38:01 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-cda7136d9b37b9359b7069f5495d767d.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>
