<!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>Apache Libcloud | 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" />

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Apache Libcloud" property="og:title">
    

    

    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/tags/new-committer" property="og:url">
    
    

    

    <link href='/assets/global-ed18a3a42c0009b2b40cccc5a72f38fc.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="/"><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="row section page-content">
  <div class="col-lg-8 col-lg-offset-2">
    <h1>Tag: new committer</h1>



  
    <div class="post">
  
    <h2><a href="/blog/2021/06/03/dimitris-moraitis-joins-our-team.html">Dimitris Moraitis (dmo) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Jun 03, 2021</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/d-mo">Dimitris Moraitis</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Dimitris
Moraitis to join us as a committer and we are pleased to announce that
they have accepted.</p>

<p>Dimitris is one of the founders and main contributors to the open source multi
cloud management project called <a href="https://github.com/mistio/mist-ce">Mist.io</a>.</p>

<p>Mist.io has been an early user and adopter of Libcloud. Over the years,
Dimitris and the rest of the Mist.io team have contributed many changes and
improvements to Libcloud.</p>

<p>For anyone who would like to know more about Dimitris here is his short bio:</p>

<blockquote>
  <p>Dimitris is an entrepreneur &amp; engineer committed to open technologies. He
holds a UoA CS BSc. He has been serving as the technical lead for organizations
around the world since 2001. He’s the co-founder &amp; CTO of Mist.io, the open
source multicloud management platform. He’s particularly interested in DevOps,
UX, AI/ML and the social impact of technology.</p>
</blockquote>


  </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/2020/08/31/miguel-caballer-joins-our-team.html">Miguel Caballer (micafer) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 31, 2020</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/micafer">Miguel Caballer</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Miguel
Caballer to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>Miguel has been part of the Libcloud community for many years now and during
his participation he made various contributions to the project, majority of
them focusing on our OpenStack drivers.</p>

<p>For anyone who would like to know more about Miguel here is his short bio:</p>

<blockquote>
  <p>Miguel Caballer is part of the Grid and High Performance Computing group of
UPV since 2001. He is the lead developer of the Infrastructure Manager (IM),
a tool that deploys complex and customized virtual infrastructures on IaaS
Cloud deployments. He has participated in different research projects about
the application of Grid and Cloud computing techniques to several areas of
engineering. Other fields of interest include green computing.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>When I start the development of the IM (in python) I found that Libcloud was
the best option to connect with different cloud back-ends using a single
library and using the same basic set of functions calls. It has improved a
lot in the last years adding extra functionality for each connector that makes
it a really good alternative to native libraries. My main contributions has been
mainly related with the OpenStack driver, one of the most user cloud providers
by the IM tool. I’m very proud to be an Apache Libcloud team member and I will
continue with my contributions.</p>
</blockquote>


  </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></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2019/08/27/clemens-wolff-joins-our-team.html">Clemens Wolff (clewolff) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 27, 2019</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/c-w">Clemens
Wolff</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Clemens
Wolff to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>Clemens has participated in the Libcloud community for a while now and during
his participation he made a <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Ac-w">number of high quality contributions to the
project</a>.</p>

<p>For anyone who would like to know more about Clemens here is his short bio:</p>

<blockquote>
  <p>Clemens Wolff is a tech lead in Microsoft’s Commercial Software
Engineering team, enabling customers from around the world to create scalable,
resilient and efficient software solutions applying relevant technologies and
platforms, including cloud computing, highly scalable data engines, machine
learning and analytics, and distributed messaging systems.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>I was introduced to Libcloud while working with a research group at Imperial
College London on porting OKpy, an open source computer science classroom
management system, from GCP to Azure. OKpy uses Libcloud which made
migrating the object storage needs of the application a breeze. Since this
initial exposure, I’ve been using Libcloud on many projects to ensure
cross-cloud compatibility and to simplify testing via the local provider
implementations. Most of my contributions have been about maintaining and
updating the Azure implementation of Libcloud’s storage driver and
building test automation to ensure that Libcloud can seamlessly be used
with Azure.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</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></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2018/06/27/rick-van-de-loo-joins-our-team.html">Rick van de Loo (vdloo) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Jun 27, 2018</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/vdloo">Rick van de
Loo</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Rick
van de Loo to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>In the last couple of years Rick has <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Avdloo+is%3Aclosed">contributed various high quality
changes</a> to the project and we are happy to have him on board.</p>

<p>For anyone who would like to know more about Rick here is his short bio:</p>

<blockquote>
  <p>Rick van de Loo is the lead developer on Hypernode, a highly automated and
cloud agnostic hosting platform specialised for Magento built on top of Apache
Libcloud. Since Rick started working on Hypernode he has seen it scale from
double digits to thousands of servers, along the road orchestrating various
high volume cross-provider migrations. His main focus is on platform
stability and feature development, of which a large part has been integrating
cloud APIs and working around their incompatibilities and unreliable nature.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>Since we started using Libcloud around four years ago the landscape has
changed a lot. But even though container-based and serverless architectures
have become more prominent, compute is still the cornerstone of cloud. Most
of my contributions have been about standardising functionality across
different compute providers and implementing new driver methods, mainly
related to the AWS, DigitalOcean and OpenStack APIs. As an Apache Libcloud
team member I will continue to contribute changes that help us scratch our
own itch and encourage other members of the Hypernode team to do the same.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</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></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2015/11/18/anthony-shaw-joins-our-team.html">Anthony Shaw (anthonyshaw) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 18, 2015</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/tonybaloney">Anthony
Shaw</a>!</p>

<p>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.</p>

<p>Anthony has joined the community fairly recently, but he has already made a lot
of <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Atonybaloney+is%3Aclosed">substantial contributions</a>. Those contributions range from new Dimension
Data drivers and various related improvements to a proposal for a new <a href="https://github.com/apache/libcloud/pull/629">backup
API</a> for Backup as a Service products and projects.</p>

<p>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 <a href="https://github.com/apache/libcloud/pull/629">participate in the
discussion</a>. The more feedback we get, the better and more widely applicable
we can make this new API.</p>

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

<blockquote>
  <p>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.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>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.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</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/2015/03/17/allard-hoeve-joins-our-team.html">Allard Hoeve (allard) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Mar 17, 2015</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/allardhoeve">Allard
Hoeve</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has asked Allard
Hoeve to join us as a committer and we are pleased to announce that he has
accepted.</p>

<p>Allard has joined the community just recently, but he has already contributed
some high quality changes and proposals.</p>

<p>We are happy to have him on our team and we are looking forward to his future
contributions.</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></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2014/12/04/eric-johnson-joins-our-team.html">Eric Johnson (erjohnso) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Dec 04, 2014</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member Eric Johnson!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has asked Eric
Johnson to join us as a committer and a PMC member and we are pleased to
announce that he has accepted.</p>

<p>Eric has been involved in the Libcloud community for a while now. He has made
many substantial contributions to the Google Compute Engine drivers. On top of
that, he also contributed to other projects which utilize Libcloud.</p>

<p>We are happy to have him on our team and we are looking forward to even better
and more complete Google Compute Engine drivers.</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/17/sebastien-goasguen-joins-our-team.html">Sebastien Goasguen (sebgoa) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus 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/07/new-committer-alex-gaynor-joins-our-team.html">New committer Alex Gaynor joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 07, 2014</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Alex
Gaynor to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer. Everyone, please help us welcome him
to the 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></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2013/11/25/new-committers-brian-curtin-joins-our-team.html">New committer Brian Curtin joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 25, 2013</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Brian
Curtin to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer. Everyone, please help us welcome him
to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201311.mbox/%3CCAJMHEmJZO0%3DPLpLXe9W9wPXTLwh2iQ3x2xXy%2BWhqjdFBv2%2BHbw%40mail.gmail.com%3E">mailing list</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/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2013/08/04/new-committer-john-carr-joins-our-team.html">New committer John Carr joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 04, 2013</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked John
Carr to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer and a PMC member. Everyone, please
help me welcome him to the team :)</p>

<p>Source: <a href="https://mail-archives.apache.org/mod_mbox/libcloud-dev/201308.mbox/%3CCAJMHEm%2Bh7Fbqc8vWBw0PJbkzUKaDHWVziezOgECa2n7qESvLeA%40mail.gmail.com%3E">mailing list thread</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/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/pmc.html" rel="tag">pmc</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2012/12/28/new-committer-mahendra-maheshwara-joins-our-team.html">New committer Mahendra Maheshwara joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Dec 28, 2012</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked
Mahendra Maheshwara to become a committer and we are pleased to announce
that they have accepted.</p>

<p>Mahendra Maheshwara has joined the Libcloud community fairly recently, but
he has already contributed multiple great patches -
https://issues.apache.org/jira/issues/?jql=project%20%3D%20LIBCLOUD%20AND%20reporter%20in%20(%22mahendra.m%22)
.</p>

<p>Giving him commit access will allow him to more directly contribute to the
project.</p>

<p>Everyone, please help me welcome him to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201212.mbox/%3CCAJMHEmLyVg66Kb1Q9LRD1z9bSbtVFU=hTZGeWO2pc+s4qcEpow@mail.gmail.com%3E">mailing list thread</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/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2012/11/16/new-committer-ilgiz-islamgulov-joins-the-team.html">New committer Ilgiz Islamgulov joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 16, 2012</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud
has asked Ilgiz Islamgulov to become a committer and we are pleased
to announce that they have accepted.</p>

<p>Ilgiz worked on the Libcloud REST GSoC project
(http://libcloud.apache.org/gsoc-2012.html) this summer and he has made a
great progress on it.</p>

<p>Giving him commit access will allow him to more directly contribute to the
project and work on integrating Libcloud REST into main line.</p>

<p>Everyone, please help me welcome him to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201211.mbox/%3CCAJMHEmJmRDdQbfRSxOBTueSJ8u4-VgU8YaeP5LcJ2gwubfNF2g%40mail.gmail.com%3E">mailing list</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/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2><a href="/blog/2011/11/22/new-committer-hutson-betts-join-our-team.html">New committer Hutson Betts joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 22, 2011</span>

  <div class="post-content">
    <p>Hi all,</p>

<p>I just wanted to let everyone know that the Libcloud PMC has decided to
invite a new committer - Hutson Betts (hbetts).</p>

<p>He has previously mostly contributed to the OpenNebula driver and the
networking API.</p>

<p>We believe that granting him the committer status will allow him to more
easily and directly contribute to the project.</p>

<p>Please help us welcome him!</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201111.mbox/%3CCAJMHEm+08-1MMCgHDZgULc+StDiwgR+_krVZvHOJF0odcU_OWg@mail.gmail.com%3E">mailing list</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/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  


  </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-30 10:16:59 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-23549af89e29254587a07d91b7eb9749.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '7']);
    var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

  </body>
</html>
