Modified: libcloud/site/trunk/generated/blog/page/3/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/page/3/index.html?rev=1840021&r1=1840020&r2=1840021&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/page/3/index.html (original) +++ libcloud/site/trunk/generated/blog/page/3/index.html Tue Sep 4 08:59:23 2018 @@ -97,6 +97,85 @@ <div class="post"> + <h2><a href="/blog/2016/11/27/libcloud-1-4-0-released.html">Libcloud 1.4.0 released</a></h2> + + + + + + <span class="post-date-author">By Anthony Shaw on Nov 27, 2016</span> + + <div class="post-content"> + <p>We are pleased to announce the release of Libcloud 1.4.0.</p> + +<p>This release brings many new features, improvements, bug-fixes, and drivers.</p> + +<h3>Release highlights</h3> + +<p>The release includes a new Azure ARM driver and an Amazon Application +Load Balancer (ALB) driver.</p> + +<p>Full change log can be found at <a href="https://libcloud.readthedocs.org/en/latest/changelog.html">here</a>.</p> + +<h3>Special thank you</h3> + +<p>I would like to wish a special thank you to all of our community contributors +for their ongoing support to the project.</p> + +<h3>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.4.0 +</pre> + +<h3>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.4.0 +</pre> + +<h3>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>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>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>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> + + </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%20announcement.html" rel="tag">release announcement</a></p> + </div> + </div> +</div> + + + + + <div class="post"> + <h2><a href="/blog/2016/10/14/libcloud-1-3-0-released.html">Libcloud 1.3.0 released</a></h2> @@ -738,288 +817,6 @@ list of people who contributed to this r - - <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>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>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>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="highlight"><pre><code class="python language-python" data-lang="python"><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="o">.</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> - -<p>This brings the Amazon API inline with the other drivers, makes it easier to maintain and switch between regions.</p> - -<h3>Bug fixes</h3> - -<h4>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>1024</code> to <code>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>EC2_US_EAST</code>, etc.).</p> - -<p>Those drivers have moved to single provider constant + <code>region</code> constructor -argument model. -[Tomaz Muraus]</p></li> -</ul> - -<h3>New or deprecated drivers</h3> - -<h4>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>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>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>Loadbalancer</h4> - -<ul> -<li>New driver for Aliyun SLB Loadbalancer Service. -(LIBCLOUD-802, GITHUB-712) -[Sam Song]</li> -</ul> - -<h4>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>Bug fixes</h2> - -<ul> -<li><p>Fix a bug in the GoDaddy driver - make sure <code>host</code> attribute on the -connection class is correctly set to the hostname. -[Tomaz Muraus]</p></li> -<li><p>Fix handling of <code>MX</code> records in the Gandi driver. -(GITHUB-718) -[Ryan Lee]</p></li> -</ul> - -<h2>Improvements</h2> - -<h3>Compute</h3> - -<ul> -<li><p>Introduce new <code>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>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<em>encrypted and ex</em>kms<em>key</em>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>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>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>get_container</code>, <code>get_object</code> and <code>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>upload_object_via_stream</code> whole file is read and buffered in memory. -(GITHUB-696) -[Jay jshridha]</p></li> -</ul> - -<h3>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>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>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>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>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>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>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%20announcement.html" rel="tag">release announcement</a></p> - </div> - </div> -</div> - - - </div> <p class="navigation"> @@ -1044,7 +841,7 @@ list of people who contributed to this r <div class="col-lg-3 col-lg-offset-1"> <h2>Archive</h1> <ul> - <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/bl og/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archive s/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> + <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2018/03/"> March 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog /archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archive s/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> </ul> </div> </div>
Modified: libcloud/site/trunk/generated/blog/page/4/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/page/4/index.html?rev=1840021&r1=1840020&r2=1840021&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/page/4/index.html (original) +++ libcloud/site/trunk/generated/blog/page/4/index.html Tue Sep 4 08:59:23 2018 @@ -97,6 +97,288 @@ <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>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>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>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="highlight"><pre><code class="python language-python" data-lang="python"><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="o">.</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> + +<p>This brings the Amazon API inline with the other drivers, makes it easier to maintain and switch between regions.</p> + +<h3>Bug fixes</h3> + +<h4>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>1024</code> to <code>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>EC2_US_EAST</code>, etc.).</p> + +<p>Those drivers have moved to single provider constant + <code>region</code> constructor +argument model. +[Tomaz Muraus]</p></li> +</ul> + +<h3>New or deprecated drivers</h3> + +<h4>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>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>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>Loadbalancer</h4> + +<ul> +<li>New driver for Aliyun SLB Loadbalancer Service. +(LIBCLOUD-802, GITHUB-712) +[Sam Song]</li> +</ul> + +<h4>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>Bug fixes</h2> + +<ul> +<li><p>Fix a bug in the GoDaddy driver - make sure <code>host</code> attribute on the +connection class is correctly set to the hostname. +[Tomaz Muraus]</p></li> +<li><p>Fix handling of <code>MX</code> records in the Gandi driver. +(GITHUB-718) +[Ryan Lee]</p></li> +</ul> + +<h2>Improvements</h2> + +<h3>Compute</h3> + +<ul> +<li><p>Introduce new <code>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>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<em>encrypted and ex</em>kms<em>key</em>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>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>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>get_container</code>, <code>get_object</code> and <code>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>upload_object_via_stream</code> whole file is read and buffered in memory. +(GITHUB-696) +[Jay jshridha]</p></li> +</ul> + +<h3>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>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>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>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>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>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>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%20announcement.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> @@ -548,213 +830,6 @@ list of people who contributed to this r - - <div class="post"> - - <h2><a href="/blog/2016/01/20/libcloud-1.0-pre1.html">Libcloud 1.0-pre1 open for feedback</a></h2> - - - - - - <span class="post-date-author">By Anthony Shaw on Jan 20, 2016</span> - - <div class="post-content"> - <p>We are pleased to announce that version 1.0-pre1 vote thread is open and the release is ready for community feedback.</p> - -<p>1.0-pre1 marks the first pre-release of the 1.0 major release. Some years ago, Tomaz Muraus spoke on the podcast <a href="https://twit.tv/shows/floss-weekly/episodes/181">FLOSS weekly</a>. -Tomaz spoke about how much of a huge challenge porting the project to Python 3.x would be(!) as well as the 1.0 milestone.</p> - -<p>It is worth listening to the podcast to see how far things have come, we now average 2 pull-requests a day and have 156 contributors.</p> - -<p>As the project has matured over the last 5 years one of the most remarkable changes has been the adoption from the community and -continued support from our contributors adding new drivers, patching strange API issues and keeping the project alive.</p> - -<p>Anthony Shaw will be speaking on the FLOSS weekly podcast on February 2nd and discussing our community and the project, so -please tune in. </p> - -<p>The Cloud market as I'm sure you're all aware of is thriving, the purpose of Libcloud was originally:</p> - -<ul> -<li>To help prevent lock-in to a particular vendor</li> -<li>To abstract the complexity of vendor APIs</li> -<li>To give a simple way for deploying to and managing multiple cloud vendors</li> -</ul> - -<p>Since that we have had (at the last count) 2,118,539 downloads. The project continues to grow in popularity with each new release.</p> - -<p>So with the 1.0 major release we would like to announce 2 new driver types, containers and backup.</p> - -<h2>History of our drivers</h2> - -<p>The compute (IaaS) API is what libcloud is best known for but there is a range of drivers available for many other capabilities.</p> - -<p>There is a presentation on the value of using Libcloud to avoid lock in <a href="http://www.slideshare.net/AnthonyShaw5/apache-libcloud-keeping-up-with-the-cloud-market-in-2016">on SlideShare</a></p> - -<p>This is a history of the different driver types in the libcloud project.</p> - -<ul> -<li>Compute (v0.1.0) - -<ul> -<li> Support for nodes, node images, locations, states</li> -<li> 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt</li> -</ul></li> -<li>DNS (v0.6.0) - -<ul> -<li> Support for zones, records, recordtypes</li> -<li> 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo</li> -</ul></li> -<li>Object Storage (v0.5.0) - -<ul> -<li> Support for containers and objects</li> -<li> 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift</li> -</ul></li> -<li>Load Balancer (v0.5.0) - -<ul> -<li> Support for nodes, balancers, listeners and algorithms</li> -<li> 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB</li> -</ul></li> -<li>Backup (v0.20.0) - -<ul> -<li> Support for backup targets, recovery points and jobs</li> -<li> 3 providers, Dimension Data, Amazon EBS snaps, Google snaps</li> -</ul></li> -</ul> - -<h2>Introducing Backup Drivers</h2> - -<p>With 1.0-pre1 we have introduced a new driver type for backup, <code>libcloud.backup</code></p> - -<p>Backup API allows you to manage Backup as A Service and services such as EBS Snaps, -GCE volume snap and dimension data backup.</p> - -<h3>Terminology</h3> - -<ul> -<li><code>libcloud.backup.base.BackupTarget</code> - Represents a backup target, like a Virtual Machine, a folder or a database.</li> -<li><code>libcloud.backup.base.BackupTargetRecoveryPoint</code> - Represents a copy of the data in the target, a recovery point can be -recovered to a backup target. An inplace restore is where you recover to the same target and an out-of-place restore is where you -recover to another target.</li> -<li><code>libcloud.backup.base.BackupTargetJob</code> - Represents a backup job running on backup target.</li> -</ul> - -<h2>Introducing Container-as-a-Service Drivers</h2> - -<p>The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service. -The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider.</p> - -<p>Google, Amazon and Joyent have all announced Container cloud services and Microsoft have launched a beta service also, so we are getting on the front foot with an -abstraction API for people wishing to gain similar benefits to the compute, load balancer and storage APIs.</p> - -<p><a href="http://www.slideshare.net/AnthonyShaw5/introducing-container-asaservice-support-to-apache-libcloud">A presentation on this topic is available on SlideShare.</a></p> - -<p><strong>Isn't docker a standard?</strong> -Well, yes and no.</p> - -<p>Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. -But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt. </p> - -<h3>Container API design</h3> - -<p>Container-as-a-Service providers will implement the <code>ContainerDriver</code> class to provide functionality for :</p> - -<ul> -<li>Listing deployed containers</li> -<li>Starting, stopping and restarting containers (where supported)</li> -<li>Destroying containers</li> -<li>Creating/deploying containers</li> -<li>Listing container images</li> -<li>Installing container images (pulling an image from a local copy or remote repository)</li> -</ul> - -<h3>Simple Container Support</h3> - -<ul> -<li><code>libcloud.container.base.ContainerImage</code> - Represents an image that can be deployed, like an application or an operating system</li> -<li><code>libcloud.container.base.Container</code> - Represents a deployed container image running on a container host</li> -</ul> - -<h3>Cluster Suppport</h3> - -<p>Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute <code>supports_clusters</code> as True -clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified.</p> - -<ul> -<li><code>libcloud.container.base.ContainerCluster</code> - Represents a deployed container image running on a container host</li> -<li><code>libcloud.container.base.ClusterLocation</code> - Represents a location for clusters to be deployed</li> -</ul> - -<h3>Using the container drivers</h3> - -<p>The container drivers have been designed around similar principles to the compute driver. It is simple to use and a flat class design. </p> - -<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.providers</span> <span class="kn">import</span> <span class="n">get_driver</span> -<span class="kn">from</span> <span class="nn">libcloud.container.types</span> <span class="kn">import</span> <span class="n">Provider</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="o">.</span><span class="n">DOCKER</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">'user'</span><span class="p">,</span> <span class="s">'api key'</span><span class="p">)</span> - -<span class="n">image</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">install_image</span><span class="p">(</span><span class="s">'tomcat:8.0'</span><span class="p">)</span> -<span class="n">container</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">deploy_container</span><span class="p">(</span><span class="s">'tomcat'</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> - -<span class="n">container</span><span class="o">.</span><span class="n">restart</span><span class="p">()</span> -</code></pre></div> - -<h3>Container Registries</h3> - -<p>The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry. -It doesn't belong to a particular driver, so is a utility class. -Some providers, like Amazon ECR have a factory method to provide a registry client -Images from docker registry can be sent to the deploy_container method for any driver.</p> - -<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.utils.docker</span> <span class="kn">import</span> <span class="n">HubClient</span> -<span class="n">hub</span> <span class="o">=</span> <span class="n">HubClient</span><span class="p">()</span> -<span class="n">image</span> <span class="o">=</span> <span class="n">hub</span><span class="o">.</span><span class="n">get_image</span><span class="p">(</span><span class="s">'ubuntu'</span><span class="p">,</span> <span class="s">'latest'</span><span class="p">)</span> -</code></pre></div> - -<p>When other container registry services are made available these can be provided in a similar context.</p> - -<h3>Prototype drivers in libcloud.container</h3> - -<p>Drivers have been provided to show example implementations of the API, these drivers are <strong>experimental</strong> and need to go through more thorough community testing -before they are ready for a stable release.</p> - -<ul> -<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/docker.html">Docker</a></li> -<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/joyent.html">Joyent Triton</a></li> -<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/kubernetes.html">Google Kubernetes</a> </li> -<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/ecs.html">Amazon Elastic Container Service (as well as Amazon Container Registry Service)</a></li> -</ul> - -<p>The driver with the most contentious implementation is Kubernetes. We would like users of the Amazon ECS, Google Containers and Kubernetes project to provide feedback -on how they would like to map clusters, pods, namespaces to the low level concepts in the driver.</p> - -<h1>Providing feedback</h1> - -<p>The <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201601.mbox/%3CCAOZ4b6sJM8ofMinGJCpfJEq7BYcAbfJBVCE7cfPniESqkEpkPQ%40mail.gmail.com%3E">voting thread</a> is open, please use this as your opportunity to give feedback.</p> - -<h1>Thanks</h1> - -<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> - - </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/announcement.html" rel="tag">announcement</a></p> - </div> - </div> -</div> - - - </div> <p class="navigation"> @@ -779,7 +854,7 @@ list of people who contributed to this r <div class="col-lg-3 col-lg-offset-1"> <h2>Archive</h1> <ul> - <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/bl og/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archive s/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> + <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2018/03/"> March 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog /archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archive s/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> </ul> </div> </div> Modified: libcloud/site/trunk/generated/blog/page/5/index.html URL: http://svn.apache.org/viewvc/libcloud/site/trunk/generated/blog/page/5/index.html?rev=1840021&r1=1840020&r2=1840021&view=diff ============================================================================== --- libcloud/site/trunk/generated/blog/page/5/index.html (original) +++ libcloud/site/trunk/generated/blog/page/5/index.html Tue Sep 4 08:59:23 2018 @@ -97,6 +97,213 @@ <div class="post"> + <h2><a href="/blog/2016/01/20/libcloud-1.0-pre1.html">Libcloud 1.0-pre1 open for feedback</a></h2> + + + + + + <span class="post-date-author">By Anthony Shaw on Jan 20, 2016</span> + + <div class="post-content"> + <p>We are pleased to announce that version 1.0-pre1 vote thread is open and the release is ready for community feedback.</p> + +<p>1.0-pre1 marks the first pre-release of the 1.0 major release. Some years ago, Tomaz Muraus spoke on the podcast <a href="https://twit.tv/shows/floss-weekly/episodes/181">FLOSS weekly</a>. +Tomaz spoke about how much of a huge challenge porting the project to Python 3.x would be(!) as well as the 1.0 milestone.</p> + +<p>It is worth listening to the podcast to see how far things have come, we now average 2 pull-requests a day and have 156 contributors.</p> + +<p>As the project has matured over the last 5 years one of the most remarkable changes has been the adoption from the community and +continued support from our contributors adding new drivers, patching strange API issues and keeping the project alive.</p> + +<p>Anthony Shaw will be speaking on the FLOSS weekly podcast on February 2nd and discussing our community and the project, so +please tune in. </p> + +<p>The Cloud market as I'm sure you're all aware of is thriving, the purpose of Libcloud was originally:</p> + +<ul> +<li>To help prevent lock-in to a particular vendor</li> +<li>To abstract the complexity of vendor APIs</li> +<li>To give a simple way for deploying to and managing multiple cloud vendors</li> +</ul> + +<p>Since that we have had (at the last count) 2,118,539 downloads. The project continues to grow in popularity with each new release.</p> + +<p>So with the 1.0 major release we would like to announce 2 new driver types, containers and backup.</p> + +<h2>History of our drivers</h2> + +<p>The compute (IaaS) API is what libcloud is best known for but there is a range of drivers available for many other capabilities.</p> + +<p>There is a presentation on the value of using Libcloud to avoid lock in <a href="http://www.slideshare.net/AnthonyShaw5/apache-libcloud-keeping-up-with-the-cloud-market-in-2016">on SlideShare</a></p> + +<p>This is a history of the different driver types in the libcloud project.</p> + +<ul> +<li>Compute (v0.1.0) + +<ul> +<li> Support for nodes, node images, locations, states</li> +<li> 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt</li> +</ul></li> +<li>DNS (v0.6.0) + +<ul> +<li> Support for zones, records, recordtypes</li> +<li> 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo</li> +</ul></li> +<li>Object Storage (v0.5.0) + +<ul> +<li> Support for containers and objects</li> +<li> 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift</li> +</ul></li> +<li>Load Balancer (v0.5.0) + +<ul> +<li> Support for nodes, balancers, listeners and algorithms</li> +<li> 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB</li> +</ul></li> +<li>Backup (v0.20.0) + +<ul> +<li> Support for backup targets, recovery points and jobs</li> +<li> 3 providers, Dimension Data, Amazon EBS snaps, Google snaps</li> +</ul></li> +</ul> + +<h2>Introducing Backup Drivers</h2> + +<p>With 1.0-pre1 we have introduced a new driver type for backup, <code>libcloud.backup</code></p> + +<p>Backup API allows you to manage Backup as A Service and services such as EBS Snaps, +GCE volume snap and dimension data backup.</p> + +<h3>Terminology</h3> + +<ul> +<li><code>libcloud.backup.base.BackupTarget</code> - Represents a backup target, like a Virtual Machine, a folder or a database.</li> +<li><code>libcloud.backup.base.BackupTargetRecoveryPoint</code> - Represents a copy of the data in the target, a recovery point can be +recovered to a backup target. An inplace restore is where you recover to the same target and an out-of-place restore is where you +recover to another target.</li> +<li><code>libcloud.backup.base.BackupTargetJob</code> - Represents a backup job running on backup target.</li> +</ul> + +<h2>Introducing Container-as-a-Service Drivers</h2> + +<p>The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service. +The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider.</p> + +<p>Google, Amazon and Joyent have all announced Container cloud services and Microsoft have launched a beta service also, so we are getting on the front foot with an +abstraction API for people wishing to gain similar benefits to the compute, load balancer and storage APIs.</p> + +<p><a href="http://www.slideshare.net/AnthonyShaw5/introducing-container-asaservice-support-to-apache-libcloud">A presentation on this topic is available on SlideShare.</a></p> + +<p><strong>Isn't docker a standard?</strong> +Well, yes and no.</p> + +<p>Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. +But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt. </p> + +<h3>Container API design</h3> + +<p>Container-as-a-Service providers will implement the <code>ContainerDriver</code> class to provide functionality for :</p> + +<ul> +<li>Listing deployed containers</li> +<li>Starting, stopping and restarting containers (where supported)</li> +<li>Destroying containers</li> +<li>Creating/deploying containers</li> +<li>Listing container images</li> +<li>Installing container images (pulling an image from a local copy or remote repository)</li> +</ul> + +<h3>Simple Container Support</h3> + +<ul> +<li><code>libcloud.container.base.ContainerImage</code> - Represents an image that can be deployed, like an application or an operating system</li> +<li><code>libcloud.container.base.Container</code> - Represents a deployed container image running on a container host</li> +</ul> + +<h3>Cluster Suppport</h3> + +<p>Cluster support extends on the basic driver functions, but where drivers implement the class-level attribute <code>supports_clusters</code> as True +clusters may be listed, created and destroyed. When containers are deployed, the target cluster can be specified.</p> + +<ul> +<li><code>libcloud.container.base.ContainerCluster</code> - Represents a deployed container image running on a container host</li> +<li><code>libcloud.container.base.ClusterLocation</code> - Represents a location for clusters to be deployed</li> +</ul> + +<h3>Using the container drivers</h3> + +<p>The container drivers have been designed around similar principles to the compute driver. It is simple to use and a flat class design. </p> + +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.providers</span> <span class="kn">import</span> <span class="n">get_driver</span> +<span class="kn">from</span> <span class="nn">libcloud.container.types</span> <span class="kn">import</span> <span class="n">Provider</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="o">.</span><span class="n">DOCKER</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">'user'</span><span class="p">,</span> <span class="s">'api key'</span><span class="p">)</span> + +<span class="n">image</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">install_image</span><span class="p">(</span><span class="s">'tomcat:8.0'</span><span class="p">)</span> +<span class="n">container</span> <span class="o">=</span> <span class="n">driver</span><span class="o">.</span><span class="n">deploy_container</span><span class="p">(</span><span class="s">'tomcat'</span><span class="p">,</span> <span class="n">image</span><span class="p">)</span> + +<span class="n">container</span><span class="o">.</span><span class="n">restart</span><span class="p">()</span> +</code></pre></div> + +<h3>Container Registries</h3> + +<p>The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry. +It doesn't belong to a particular driver, so is a utility class. +Some providers, like Amazon ECR have a factory method to provide a registry client +Images from docker registry can be sent to the deploy_container method for any driver.</p> + +<div class="highlight"><pre><code class="python language-python" data-lang="python"><span class="kn">from</span> <span class="nn">libcloud.container.utils.docker</span> <span class="kn">import</span> <span class="n">HubClient</span> +<span class="n">hub</span> <span class="o">=</span> <span class="n">HubClient</span><span class="p">()</span> +<span class="n">image</span> <span class="o">=</span> <span class="n">hub</span><span class="o">.</span><span class="n">get_image</span><span class="p">(</span><span class="s">'ubuntu'</span><span class="p">,</span> <span class="s">'latest'</span><span class="p">)</span> +</code></pre></div> + +<p>When other container registry services are made available these can be provided in a similar context.</p> + +<h3>Prototype drivers in libcloud.container</h3> + +<p>Drivers have been provided to show example implementations of the API, these drivers are <strong>experimental</strong> and need to go through more thorough community testing +before they are ready for a stable release.</p> + +<ul> +<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/docker.html">Docker</a></li> +<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/joyent.html">Joyent Triton</a></li> +<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/kubernetes.html">Google Kubernetes</a> </li> +<li><a href="http://libcloud.readthedocs.org/en/latest/container/drivers/ecs.html">Amazon Elastic Container Service (as well as Amazon Container Registry Service)</a></li> +</ul> + +<p>The driver with the most contentious implementation is Kubernetes. We would like users of the Amazon ECS, Google Containers and Kubernetes project to provide feedback +on how they would like to map clusters, pods, namespaces to the low level concepts in the driver.</p> + +<h1>Providing feedback</h1> + +<p>The <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201601.mbox/%3CCAOZ4b6sJM8ofMinGJCpfJEq7BYcAbfJBVCE7cfPniESqkEpkPQ%40mail.gmail.com%3E">voting thread</a> is open, please use this as your opportunity to give feedback.</p> + +<h1>Thanks</h1> + +<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> + + </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/announcement.html" rel="tag">announcement</a></p> + </div> + </div> +</div> + + + + + <div class="post"> + <h2><a href="/blog/2016/01/19/libcloud-0-20-1-released.html">Libcloud 0.20.1 released</a></h2> @@ -412,96 +619,6 @@ participation and contributions.</p> - - <div class="post"> - - <h2><a href="/blog/2015/10/30/libcloud-0-19-0-released.html">Libcloud 0.19.0 released</a></h2> - - - - - - <span class="post-date-author">By Eric Johnson on Oct 30, 2015</span> - - <div class="post-content"> - <p>We are pleased to announce the release of Libcloud 0.19.0.</p> - -<p>This is a first release in the 0.19 series which means it brings many new -features, improvements, bug-fixes, and DNS drivers.</p> - -<h3>Release highlights</h3> - -<ul> -<li>New load balancer driver for <a href="http://cloud.dimensiondata.com/am/en/">Dimension Data</a></li> -<li>New DNS driver for <a href="https://www.pcextreme.com/aurora/dns">AuroraDNS</a></li> -<li>New DNS driver for <a href="http://www.worldwidedns.net/home.asp">WorldWideDNS</a></li> -<li>New DNS driver for <a href="https://dnsimple.com/">DNSimple</a></li> -<li>New DNS driver for <a href="https://pointhq.com/">PointDNS</a></li> -<li>New DNS driver for <a href="https://www.vultr.com/">Vult DNS</a></li> -<li>New DNS driver for <a href="http://www.liquidweb.com/">Liquidweb DNS</a></li> -<li>New DNS driver for <a href="http://zonomi.com/">Zonomi DNS</a></li> -<li>New DNS driver for <a href="https://durabledns.com/">Durable DNS</a></li> -<li>Added volume management methods and more to <a href="https://www.runabove.com/index.xml">RunAbove compute service</a></li> -<li>Added new South America East region to <a href="https://aws.amazon.com/s3/">S3 storage driver</a></li> -<li>Many more improvements and API v2.0 added to the <a href="http://cloud.dimensiondata.com/am/en/services/public-cloud/cloud-networks">Dimension Data compute driver</a></li> -<li>New API v1 support for <a href="https://cloud.google.com/dns/">Google Cloud DNS</a></li> -<li>Many improvements in the HostVirtual compute driver</li> -<li>and much more!</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-19-0">here</a>.</p> - -<h3>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.19.0 -</pre> - -<h3>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.19.0 -</pre> - -<h3>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>Documentation</h3> - -<p>Regular and API documentation is available at <a href="https://libcloud.readthedocs.org/en/v0.19.0/">https://libcloud.readthedocs.org/en/v0.19.0/</a></p> - -<h3>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>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-19-0">CHANGES file</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%20announcement.html" rel="tag">release announcement</a></p> - </div> - </div> -</div> - - - </div> <p class="navigation"> @@ -526,7 +643,7 @@ list of people who contributed to this r <div class="col-lg-3 col-lg-offset-1"> <h2>Archive</h1> <ul> - <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog/archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/bl og/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archives/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archive s/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> + <li> <a href="/blog/archives/2018/06/"> June 2018</a> (1)</li><li> <a href="/blog/archives/2018/03/"> March 2018</a> (1)</li><li> <a href="/blog/archives/2017/12/"> December 2017</a> (1)</li><li> <a href="/blog/archives/2017/09/"> September 2017</a> (2)</li><li> <a href="/blog/archives/2017/07/"> July 2017</a> (1)</li><li> <a href="/blog/archives/2017/04/"> April 2017</a> (3)</li><li> <a href="/blog/archives/2016/12/"> December 2016</a> (1)</li><li> <a href="/blog/archives/2016/11/"> November 2016</a> (1)</li><li> <a href="/blog/archives/2016/10/"> October 2016</a> (1)</li><li> <a href="/blog/archives/2016/09/"> September 2016</a> (1)</li><li> <a href="/blog/archives/2016/07/"> July 2016</a> (1)</li><li> <a href="/blog/archives/2016/06/"> June 2016</a> (1)</li><li> <a href="/blog/archives/2016/04/"> April 2016</a> (2)</li><li> <a href="/blog/archives/2016/02/"> February 2016</a> (2)</li><li> <a href="/blog/archives/2016/01/"> January 2016</a> (4)</li><li> <a href="/blog/archives/2015/12/"> December 2015</a> (1)</li><li> <a href="/blog/archives/2015/11/"> November 2015</a> (1)</li><li> <a href="/blog/archives/2015/10/"> October 2015</a> (2)</li><li> <a href="/blog/archives/2015/08/"> August 2015</a> (1)</li><li> <a href="/blog/archives/2015/03/"> March 2015</a> (1)</li><li> <a href="/blog/archives/2015/02/"> February 2015</a> (1)</li><li> <a href="/blog/archives/2014/12/"> December 2014</a> (1)</li><li> <a href="/blog/archives/2014/11/"> November 2014</a> (1)</li><li> <a href="/blog/archives/2014/07/"> July 2014</a> (2)</li><li> <a href="/blog/archives/2014/06/"> June 2014</a> (1)</li><li> <a href="/blog/archives/2014/05/"> May 2014</a> (1)</li><li> <a href="/blog/archives/2014/04/"> April 2014</a> (1)</li><li> <a href="/blog/archives/2014/02/"> February 2014</a> (8)</li><li> <a href="/blog /archives/2014/01/"> January 2014</a> (4)</li><li> <a href="/blog/archives/2013/12/"> December 2013</a> (3)</li><li> <a href="/blog/archives/2013/11/"> November 2013</a> (2)</li><li> <a href="/blog/archives/2013/09/"> September 2013</a> (1)</li><li> <a href="/blog/archives/2013/08/"> August 2013</a> (1)</li><li> <a href="/blog/archives/2013/07/"> July 2013</a> (1)</li><li> <a href="/blog/archives/2013/03/"> March 2013</a> (1)</li><li> <a href="/blog/archives/2013/02/"> February 2013</a> (1)</li><li> <a href="/blog/archives/2012/12/"> December 2012</a> (2)</li><li> <a href="/blog/archives/2012/11/"> November 2012</a> (2)</li><li> <a href="/blog/archives/2012/09/"> September 2012</a> (1)</li><li> <a href="/blog/archives/2012/08/"> August 2012</a> (1)</li><li> <a href="/blog/archives/2012/07/"> July 2012</a> (1)</li><li> <a href="/blog/archives/2012/05/"> May 2012</a> (2)</li><li> <a href="/blog/archive s/2012/04/"> April 2012</a> (1)</li><li> <a href="/blog/archives/2012/02/"> February 2012</a> (1)</li><li> <a href="/blog/archives/2011/12/"> December 2011</a> (2)</li><li> <a href="/blog/archives/2011/11/"> November 2011</a> (3)</li><li> <a href="/blog/archives/2011/10/"> October 2011</a> (1)</li><li> <a href="/blog/archives/2011/09/"> September 2011</a> (1)</li><li> <a href="/blog/archives/2011/07/"> July 2011</a> (1)</li><li> <a href="/blog/archives/2011/06/"> June 2011</a> (1)</li><li> <a href="/blog/archives/2011/05/"> May 2011</a> (1)</li><li> <a href="/blog/archives/2011/02/"> February 2011</a> (1)</li><li> <a href="/blog/archives/2011/01/"> January 2011</a> (1)</li><li> <a href="/blog/archives/2010/10/"> October 2010</a> (1)</li><li> <a href="/blog/archives/2010/05/"> May 2010</a> (1)</li><li> <a href="/blog/archives/2010/02/"> February 2010</a> (1)</li> </ul> </div> </div>
