<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet OpenStack</title>
  <updated>2012-02-22T18:15:21Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Monty Taylor</name>
    <email>mordred@inaugust.com</email>
  </author>
  <id>http://planet.openstack.org/atom.xml</id>
  <link href="http://planet.openstack.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.openstack.org/" rel="alternate"/>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=866</id>
    <link href="http://fnords.wordpress.com/2012/02/21/open-dev-releases-quality/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/21/open-dev-releases-quality/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/21/open-dev-releases-quality/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Open development, releases and quality</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Every 6 months, as a cycle ends and we prepare the next, we look back at our release model and try to see how we can improve it. My opinion is that we need (once more) to evolve it, and here is why. Objectives and past evolutions Our main objective is to produce stable and [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=866&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Every 6 months, as a cycle ends and we prepare the next, we look back at our release model and try to see how we can improve it. My opinion is that we need (once more) to evolve it, and here is why.</p>
<h4>Objectives and past evolutions</h4>
<p>Our main objective is to produce stable and usable software. Our secondary objective is let stable new features reach the hands of our users in a timely manner. Our tertiary objective is to empower developers to work efficiently on the features and improvements of tomorrow. In simple solutions, those three objectives are not really compatible, and in the past we tried to make adjustments without acknowledging the fundamental incompatibility between those objectives.</p>
<p>The <a href="http://wiki.openstack.org/CactusReleaseSchedule" target="_blank">Austin-Cactus system</a> was a 3-month cycle with various freezes. The issues with this system were that it took too long to get features in the hands of testers and users, developers had trouble working during the frozen periods, and not so many people actually helped during the QA period.</p>
<p>For <a href="http://wiki.openstack.org/DiabloReleaseSchedule" target="_blank">Diablo</a>, we decided to switch to a 6-month cycle with monthly milestones. Those milestones were supposed to address the “get features into the hands of users early” issue. To empower developers, we introduced an almost-always-open trunk: we only had 2 weeks of feature freeze before the Essex branch opened (and coexisted with the Diablo release branch). The problem was the resulting quality was not good, since we accumulated 6 months’ worth of features and only had 2 weeks’ worth of QA on them.</p>
<p>So for <a href="http://wiki.openstack.org/EssexReleaseSchedule" target="_blank">Essex</a>, there was a decision that each project would decide where to place its feature freeze and its first release candidate (which would be when the Folsom branch opens). Most of them decided to use the essex-3 milestone as a soft feature freeze and essex-4 as a hard one, which reintroduced the “closed trunk” issue. And the work needed to stabilize 6 months’ worth of features is still daunting. And we saw lots of feature freeze exceptions for last-minute “almost there” features that can’t afford to wait another 6 months.</p>
<p>So what’s the solution ? Is there a good way to (at the same time) reduce the pain of “missing a release”, have always-open development branches, and get higher quality ?</p>
<h4>The kernel model</h4>
<p>The only way to reduce the pain of missing a release is to have shorter time-based releases. The only way to have always-open development branches without sacrificing release quality is to separate them completely from release branches. Where do those truisms lead us ?</p>
<p>Another famous open innovation project has already been there, and that’s the Linux kernel. Development happens in various always-open topic branches, and regularly a merge window opens to propose stable features for inclusion in the mainline kernel.</p>
<p>If we manage to efficiently separate OpenStack in topics, we could adopt the same model. We could have several topic branches where core developers on a specific area can collaborate and review code affecting that area. We could have frequent releases (every 6-8 weeks ?), and for each release we could have a “merge window” where stuff from topic branches can be proposed for release, if deemed stable enough. Between the moment the merge window closes and the moment the final release is cut, various release candidates can be produced, on which serious QA can be unleashed without blocking other developers.</p>
<p>This solves all objectives. If a feature is not ready yet (according to the team maintaining the topic branch or according to release management), it can bake until the next merge window, which is not far away. Regular releases ensure that improvements reach the users in a timely manner. Development branches are always open. And with a reasonable amount of new code in every release, QA work is facilitated, theoretically resulting in higher release quality.</p>
<h4>Additional benefits</h4>
<p>Splitting development into topics has an additional benefit: smaller groups developing an expertise on a specific area make better reviewers on that specific area than a random nova-core developer that can’t be an expert in all things Nova. I’d say that each topic should be small enough to be manageable with a team of 6 core reviewers at the maximum. Of course, nothing prevents anyone from being active on multiple topics if they wish.</p>
<p>More frequent releases also allows you to set themes for each release. It’s difficult to refuse some feature in a 6-month cycle, but it’s easy to delay a feature to the next 6-week cycle. In the same way some kernel releases introduce large architectural changes and some others are more geared towards performance improvements or stability, we could also define themes for every release — after all the next one is not so far away.</p>
<h4>Challenges</h4>
<p>There are a few issues with this model obviously. Code needs to be componentized enough so that merge pains can be limited. Changes from every release need to be merged back into topic branches. Code needs to be clearly separated into a set of relevant topics, each with its own set of core reviewers maintaining the topic branch. The release team must be staffed enough to be able to review proposed code for stability. Bug fixes need to easily end up in the release branch. And how do those “releases” match the 6-month period between summits ? What means “Folsom” in that respect ?</p>
<p>I hope we can use the following weeks to discuss the devil in the details of this possible evolution, and be ready to take a decision when the time comes for us to gather at the Folsom Design summit.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/866/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/866/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/866/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=866&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-02-21T14:07:11Z</updated>
    <published>2012-02-21T14:07:11Z</published>
    <category scheme="http://fnords.wordpress.com" term="Open source"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=2014</id>
    <link href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/" rel="alternate" type="text/html"/>
    <title>Community Weekly Review (Feb 10-17)</title>
    <summary>OpenStack Community Newsletter –February 17, 2012 HIGHLIGHTS TryStack.org – A Sandbox for OpenStack is live http://www.openstack.org/blog/2012/02/trystack-org-a-sandbox-for-openstack/ The brand new API reference website http://api.openstack.org/ SoftLayer announced its Object Storage product built on OpenStack Swift http://blog.softlayer.com/2012/softlayer-openstack-swift-softlayer-object-storage/ Action needed: OpenStack Governance Elections http://www.openstack.org/blog/2012/02/openstack-governance-elections-spring-2012/ Setting up the OpenStack Foundation: video of the meetup in Santa Clara http://www.collierclan.net/mark/?p=425 A draft [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>OpenStack Community Newsletter –February 17, 2012</strong></p>
<p><strong>HIGHLIGHTS</strong></p>
<ul>
<li>TryStack.org – A Sandbox for OpenStack is live <a href="http://www.openstack.org/blog/2012/02/trystack-org-a-sandbox-for-openstack/" rel="bookmark" title="Permanent Link to TryStack.org &#x2013; A Sandbox for OpenStack!">http://www.openstack.org/blog/2012/02/trystack-org-a-sandbox-for-openstack/</a></li>
<li>The brand new API reference website <a href="http://api.openstack.org/">http://api.openstack.org/</a></li>
<li>SoftLayer announced its Object Storage product built on OpenStack Swift<a href="http://blog.softlayer.com/2012/softlayer-openstack-swift-softlayer-object-storage/"> http://blog.softlayer.com/2012/softlayer-openstack-swift-softlayer-object-storage/</a></li>
<li>Action needed: OpenStack Governance Elections <a href="http://www.openstack.org/blog/2012/02/openstack-governance-elections-spring-2012/">http://www.openstack.org/blog/2012/02/openstack-governance-elections-spring-2012/</a></li>
<li>Setting up the OpenStack Foundation: video of the meetup in Santa Clara <a href="http://www.collierclan.net/mark/?p=425" rel="bookmark">http://www.collierclan.net/mark/?p=425</a></li>
<ul>
<li>A draft for the Foundation’s structure is up for discussion <a href="http://lists.openstack.org/pipermail/foundation/2012-February/000134.html">http://lists.openstack.org/pipermail/foundation/2012-February/000134.html</a></li>
</ul>
<li>Last days to answer the Call for speaker for OpenStack Conference <a href="http://www.openstack.org/conference/san-francisco-2012/speakers/">http://www.openstack.org/conference/san-francisco-2012/speakers/</a></li>
<li>Book your room for the week <a href="https://resweb.passkey.com/go/DRAC2012">https://resweb.passkey.com/go/DRAC2012</a></li>
</ul>
<p><strong>EVENTS</strong></p>
<ul>
<li>
<div>FLOSSTalk Kosovo Feb 22, 2012 – UNICEF Innovations Lab Kosovo in Prishtina, Kosovo <a href="http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack" target="_blank">http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack</a></div>
</li>
<li>
<div>OpenStack Spring 2012 Design Summit Apr 16 – 18 and Conference Apr 19-20 – San Francisco, California <a href="http://www.openstack.org/conference/" target="_blank">http://openstack.org/conference/</a></div>
</li>
</ul>
<p><strong>OTHER NEWS</strong></p>
<ul>
<li>Under the hood of Swift: the Ring (by Mirantis) <a href="http://www.openstack.org/blog/2012/02/1997/">http://www.openstack.org/blog/2012/02/1997/</a></li>
<li>DNS management system for OpenStack (by Grid Dynamics)  <a href="http://openstackgd.wordpress.com/2012/02/17/dns-for-openstack/">http://openstackgd.wordpress.com/2012/02/17/dns-for-openstack/</a></li>
<li>OpenStack Wiki Recent Changes – <a href="http://wiki.openstack.org/RecentChanges">http://wiki.openstack.org/RecentChanges</a></li>
<ul>
<li>New report to track changes only in main branch <a href="http://wiki.openstack.org/CommunityMetrics/Code">http://wiki.openstack.org/CommunityMetrics/Code</a></li>
<li>OpenStack sprint at PyCon2012 <a href="http://wiki.openstack.org/Sprints/PyCon2012">http://wiki.openstack.org/Sprints/PyCon2012</a></li>
<li>How to update the Corporate Copyright License Agreement <a href="http://wiki.openstack.org/HowToUpdateCorporateCLA">http://wiki.openstack.org/HowToUpdateCorporateCLA</a></li>
</ul>
<ul>
<li>Documentation Day, March 6th <a href="http://wiki.openstack.org/Documentation/DocDay">http://wiki.openstack.org/Documentation/DocDay</a></li>
<li>Documentation HowTo <a href="http://wiki.openstack.org/Documentation/HowTo">http://wiki.openstack.org/Documentation/HowTo</a></li>
<li>Getting Started with OpenStack in Japanese <a href="http://wiki.openstack.org/GettingStarted/ja">http://wiki.openstack.org/GettingStarted/ja</a></li>
</ul>
<li>Project meeting summary <a href="http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-02-14-21.00.html">http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-02-14-21.00.html</a></li>
</ul>
<p><strong>COMMUNITY STATISTICS</strong></p>
<ul>
<li> Activity on the main branch of OpenStack repositories, lines of code added and removed per developer during week 6 of 2012 (from Mon Feb 06 00:00:00 UTC 2012 to Mon Feb 13 00:00:00 UTC 2012)</li>
</ul>

<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-horizon/" title="2012-06-horizon"><img alt="Changes to Horizon project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-horizon-150x150.png" title="2012-06-horizon" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-swift/" title="2012-06-swift"><img alt="Changes to Swift project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-swift-150x150.png" title="2012-06-swift" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-manuals/" title="2012-06-manuals"><img alt="Changes to Manuals project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-manuals-150x150.png" title="2012-06-manuals" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-keystone/" title="2012-06-keystone"><img alt="Changes to Keystone project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-keystone-150x150.png" title="2012-06-keystone" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-quantum/" title="2012-06-quantum"><img alt="Changes to Quantum project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-quantum-150x150.png" title="2012-06-quantum" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-06-glance/" title="2012-06-glance"><img alt="Changes to Glance project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-06-glance-150x150.png" title="2012-06-glance" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-10-17/2012-week6-nova/" title="2012-week6-nova"><img alt="Changes to Nova project week 06 2012" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/2012-week6-nova-150x150.png" title="2012-week6-nova" width="150"/></a>

<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>This weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</p></div>
    </content>
    <updated>2012-02-17T23:03:41Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=263</id>
    <link href="https://openstackgd.wordpress.com/2012/02/17/dns-for-openstack/" rel="alternate" type="text/html"/>
    <title>DNS management system for OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">`nova-dns` package was developed to solve two tasks: map instance’s hostnames to ip addresses in DNS provide REST API to manage DNS To solve first task service monitor message bus (RabbitMQ). For every started instance service add DNS record, for … <a href="https://openstackgd.wordpress.com/2012/02/17/dns-for-openstack/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=263&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>`nova-dns` package was developed to solve two tasks:</p>
<ul>
<li>map instance’s hostnames to ip addresses in DNS</li>
<li>provide REST API to manage DNS</li>
</ul>
<p>To solve first task service monitor message bus (RabbitMQ). For every started instance service add DNS record, for terminated – remove.  DNS name is choose in form hostname.tenant_name.root_zone. If zone for tenant_name doesn’t exists yet, it is created and populated automatically.</p>
<p>To solve second task service start REST API server on specified ip/port. REST API supports authentication against keystone and utilize keystone’s RBAC.</p>
<p>As a DNS backend <a href="http://www.powerdns.com/">PowerDNS</a> is used, but other backends (for example for Bind) can be added later.</p>
<p>Next we are going to add support for PTR zones and  add ability to create personal zone for every started instance.</p>
<p>Links:</p>
<ul>
<li><a href="http://github.com/griddynamics/nova-dns">source code</a></li>
<li><a href="http://github.com/griddynamics/nova-dns/issues">issue tracker</a></li>
<li><a href="http://www.griddynamics.com/openstack/docs/nova-dns/">documentation</a></li>
<li><a href="http://yum.griddynamics.net/yum/diablo/">yum repository with RHEL package</a></li>
<li><a href="http://yum.griddynamics.net/yum/diablo-centos/">yum repository with CentOS package</a></li>
</ul>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/263/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/263/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/263/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=263&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-02-17T15:50:02Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>nikitasavin</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=402</id>
    <link href="http://www.joinfu.com/2012/02/trystack-org-a-sandbox-for-openstack/" rel="alternate" type="text/html"/>
    <title>TryStack.org – A Sandbox for OpenStack!</title>
    <summary>Today, a project that has been a long time in the making is finally coming to fruition. Back last summer, when I was working at Rackspace, Nati Ueno from NTT PF Labs came up with the idea of establishing a “Free Cloud” — a site running OpenStack that developers using the OpenStack APIs could use [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Today, a project that has been a long time in the making is finally coming to fruition. Back last summer, when I was working at Rackspace, <a href="http://www.linkedin.com/pub/nachi-ueno/21/139/86a" title="Nati Ueno">Nati Ueno</a> from <a href="http://www.ntt.co.jp/islab/e/org/pf.html" title="NTT PF Labs">NTT PF Labs</a> came up with the idea of establishing a “Free Cloud” — a site running OpenStack that developers using the OpenStack APIs could use to test their software.
</p>
<p>
The involvement of a number of companies — <a href="http://dell.com/openstack" title="Dell - OpenStack">Dell</a>, <a href="http://www.ntt.co.jp/islab/e/org/pf.html">NTT PF Labs</a>, <a href="http://rackspacecloud.com" title="Rackspace Cloud">Rackspace</a>, <a href="http://cisco.com" title="Cisco">Cisco</a>, <a href="http://equinix.com" title="Equinix">Equinix</a> and <a href="http://hpcloud.com" title="HP Cloud Services">HP Cloud Services</a> — eventually drove the idea of “The Free Cloud” from concept to reality. Though there were many delays, I’m happy to announce that this new OpenStack testing sandbox has now been launched.
</p>
<p>
The new name of the artist formerly known as The Free Cloud is now called <a href="http://trystack.org" title="OpenStack Sandbox">TryStack</a>. The front page at http://trystack.org now houses some information about the effort and a few FAQs. If you’re interested in trying out OpenStack, TryStack.org is right up your alley, and we encourage you to sign up. Instructions for signup are on the front page.</p>
<div style="margin: 20px;"><a href="http://www.joinfu.com/wp-content/uploads/2012/02/trystack_front.png"><img alt="" class="aligncenter size-full wp-image-403" height="164" src="http://www.joinfu.com/wp-content/uploads/2012/02/trystack_front.png" width="546"/></a></div>
<p/><h2>Using TryStack</h2>
<p>
Once you’ve gone through the TryStack registration process, you will receive a username and password for logging in to the TryStack Dashboard and Nova API. After logging in, you’ll see the user dashboard for TryStack. This dashboard is essentially the stock upstream OpenStack Dashboard — only lightly modified with a couple extensions that Nati wrote to show consumption of Stack Dollars and the TryStack logo.
</p>
<p>
Stack Dollars are the “unit of currency” for TryStack. When you perform certain actions in TryStack — launching instances, creating volumes, etc — you consume Stack Dollars. Likewise, instances consume Stack Dollars as long as they are running. When you run out of Stack Dollars, you won’t be able to use TryStack services until your Stack Dollars are replenished. Stack Dollars will be replenished on a periodic basis (haven’t quite decided on the interval yet…)
</p>
<p>
To prevent people from gaming the system or using TryStack as a tool for evil, instances will remain alive for up to 24 hours or until your Stack Dollar balance is depleted. Also, always keep in mind that <strong>TryStack should only be used for testing. Under no circumstances should you use it for any production uses. There is no service level agreement with TryStack.</strong>
</p>
<h2>An Automation and Administration Sandbox Too!</h2>
<p>
In addition to being a useful sandbox for developers using the OpenStack APIs and others interested in seeing what OpenStack is all about, TryStack.org is also a very useful testbed for work that the OpenStack community is doing to automate the deployment and administration OpenStack environments.
</p>
<p>
TryStack is deployed using the Chef Cookbooks from the upstream repository, and changes that are needed will be pushed back upstream immediately for consumption by the broad community. We have a limited HA setup for the initial TryStack availability zone and lessons learned from the deployment of these HA setups are being incorporated into an online TryStack Administrator’s Guide that will serve as input for the upstream documentation teams as well.
</p>
<h2>Roadmap for TryStack</h2>
<p>
In the next three to six months, we’re planning to bring on-line at least one more availability zone. The next availability zone will be running HP hardware and will be housed in a datacenter in Las Vegas. It is likely that this new zone will be deployed with the Essex release of OpenStack components, enabling users to test against both a Diablo-based OpenStack installation and an Essex-based installation.
</p>
<p>
This first availability zone does not contain an installation of Swift. Of course, we want to change that, so an installation of Swift is definitely on the roadmap for either the next availability zone or as a separate service itself. Note that, just like the instances launched in TryStack, objects stored in a TryStack Swift cluster would be temporary. After all, TryStack is for trying out OpenStack services, not for providing a free CDN or storage system! <img alt=":)" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>
We will also eventually move towards a different registration process to accomodate non-Facebook users. If you are interested in helping with this effort, please do let us know.
</p>
<p>
Finally, we’ll be adding things like an automated Twitter status feed for each zone, lots of documentation gathered from running TryStack, and hopefully a number of videos showing usage of TryStack as well as common administrative tasks — all with the goal of providing more and better information to the broad and growing OpenStack community. I fully expect numerous hiccups and growing pains in these first couple months of operation, but we promise to turn any pain points into lessons learned and document them for the benefit of the OpenStack community.
</p>
<p>
Please do check out the trystack.org service. We look forward to your feedback. You can find us on Freenode.net #trystack. Nati and I will be hosting a <a href="http://www.meetup.com/openstack/events/52464312/" title="TryStack Webinar">webinar</a> February 23, and we’ll be speaking at a San Francisco <a href="http://www.meetup.com/openstack/events/52464312/" title="TryStack/OpenStack meetup">meetup</a> March 6 if you’re interested in learning more or getting involved.
</p>
<p>
<strong>Update:</strong> I totally goofed and left Cisco off the list of donor organizations. My apologies to Mark Voelker and the excellent folks at Cisco who provided two 4948-10GE switches that are in use in the TryStack cloud. I also got the link wrong to HP Cloud… which is pretty lame, considering I work for HP. <img alt=":(" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_sad.gif"/>  That’s been corrected.</p></div>
    </content>
    <updated>2012-02-16T15:34:44Z</updated>
    <category term="Open Source"/>
    <category term="openstack"/>
    <category term="TryStack"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=2008</id>
    <link href="http://www.openstack.org/blog/2012/02/trystack-org-a-sandbox-for-openstack/" rel="alternate" type="text/html"/>
    <title>TryStack.org – A Sandbox for OpenStack!</title>
    <summary>Today, a project that has been a long time in the making is finally coming to fruition. Back last summer, when I was working at Rackspace, Nati Ueno from NTT PF Labs came up with the idea of establishing a “Free Cloud” — a site running OpenStack that developers using the OpenStack APIs could use [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Today, a project that has been a long time in the making is finally coming to fruition. Back last summer, when I was working at Rackspace, <a href="http://www.linkedin.com/pub/nachi-ueno/21/139/86a" title="Nati Ueno">Nati Ueno</a> from <a href="http://www.ntt.co.jp/islab/e/org/pf.html" title="NTT PF Labs">NTT PF Labs</a> came up with the idea of establishing a “Free Cloud” — a site running OpenStack that developers using the OpenStack APIs could use to test their software.
</p>
<p>
The involvement of a number of companies — <a href="http://dell.com/openstack" title="Dell - OpenStack">Dell</a>, <a href="http://www.ntt.co.jp/islab/e/org/pf.html">NTT PF Labs</a>, <a href="http://rackspacecloud.com" title="Rackspace Cloud">Rackspace</a>, <a href="http://cisco.com" title="Cisco">Cisco</a>, <a href="http://equinix.com" title="Equinix">Equinix</a> and <a href="http://hpcloud.com" title="HP Cloud Services">HP Cloud Services</a> — eventually drove the idea of “The Free Cloud” from concept to reality. Though there were many delays, I’m happy to announce that this new OpenStack testing sandbox has now been launched.
</p>
<p>
The new name of the artist formerly known as The Free Cloud is now called <a href="http://trystack.org" title="OpenStack Sandbox">TryStack</a>. The front page at http://trystack.org now houses some information about the effort and a few FAQs. If you’re interested in trying out OpenStack, TryStack.org is right up your alley, and we encourage you to sign up. Instructions for signup are on the front page.</p>
<div style="margin: 20px;"><a href="http://www.joinfu.com/wp-content/uploads/2012/02/trystack_front.png"><img alt="" class="aligncenter size-full wp-image-403" height="164" src="http://www.joinfu.com/wp-content/uploads/2012/02/trystack_front.png" width="546"/></a></div>
<p/><h2>Using TryStack</h2>
<p>
Once you’ve gone through the TryStack registration process, you will receive a username and password for logging in to the TryStack Dashboard and Nova API. After logging in, you’ll see the user dashboard for TryStack. This dashboard is essentially the stock upstream OpenStack Dashboard — only lightly modified with a couple extensions that Nati wrote to show consumption of Stack Dollars and the TryStack logo.
</p>
<p>
Stack Dollars are the “unit of currency” for TryStack. When you perform certain actions in TryStack — launching instances, creating volumes, etc — you consume Stack Dollars. Likewise, instances consume Stack Dollars as long as they are running. When you run out of Stack Dollars, you won’t be able to use TryStack services until your Stack Dollars are replenished. Stack Dollars will be replenished on a periodic basis (haven’t quite decided on the interval yet…)
</p>
<p>
To prevent people from gaming the system or using TryStack as a tool for evil, instances will remain alive for up to 24 hours or until your Stack Dollar balance is depleted. Also, always keep in mind that <strong>TryStack should only be used for testing. Under no circumstances should you use it for any production uses. There is no service level agreement with TryStack.</strong>
</p>
<h2>An Automation and Administration Sandbox Too!</h2>
<p>
In addition to being a useful sandbox for developers using the OpenStack APIs and others interested in seeing what OpenStack is all about, TryStack.org is also a very useful testbed for work that the OpenStack community is doing to automate the deployment and administration OpenStack environments.
</p>
<p>
TryStack is deployed using the Chef Cookbooks from the upstream repository, and changes that are needed will be pushed back upstream immediately for consumption by the broad community. We have a limited HA setup for the initial TryStack availability zone and lessons learned from the deployment of these HA setups are being incorporated into an online TryStack Administrator’s Guide that will serve as input for the upstream documentation teams as well.
</p>
<h2>Roadmap for TryStack</h2>
<p>
In the next three to six months, we’re planning to bring on-line at least one more availability zone. The next availability zone will be running HP hardware and will be housed in a datacenter in Las Vegas. It is likely that this new zone will be deployed with the Essex release of OpenStack components, enabling users to test against both a Diablo-based OpenStack installation and an Essex-based installation.
</p>
<p>
This first availability zone does not contain an installation of Swift. Of course, we want to change that, so an installation of Swift is definitely on the roadmap for either the next availability zone or as a separate service itself. Note that, just like the instances launched in TryStack, objects stored in a TryStack Swift cluster would be temporary. After all, TryStack is for trying out OpenStack services, not for providing a free CDN or storage system! <img alt=":)" class="wp-smiley" src="http://www.openstack.org/blog/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>
We will also eventually move towards a different registration process to accomodate non-Facebook users. If you are interested in helping with this effort, please do let us know.
</p>
<p>
Finally, we’ll be adding things like an automated Twitter status feed for each zone, lots of documentation gathered from running TryStack, and hopefully a number of videos showing usage of TryStack as well as common administrative tasks — all with the goal of providing more and better information to the broad and growing OpenStack community. I fully expect numerous hiccups and growing pains in these first couple months of operation, but we promise to turn any pain points into lessons learned and document them for the benefit of the OpenStack community.
</p>
<p>
Please do check out the trystack.org service. We look forward to your feedback. You can find us on Freenode.net #trystack. Nati and I will be hosting a <a href="http://www.meetup.com/openstack/events/52464312/" title="TryStack Webinar">webinar</a> February 23, and we’ll be speaking at a San Francisco <a href="http://www.meetup.com/openstack/events/52464312/" title="TryStack/OpenStack meetup">meetup</a> March 6 if you’re interested in learning more or getting involved.
</p>
<p>
<strong>Update:</strong> I totally goofed and left Cisco off the list of donor organizations. My apologies to Mark Voelker and the excellent folks at Cisco who provided two 4948-10GE switches that are in use in the TryStack cloud. I also got the link wrong to HP Cloud… which is pretty lame, considering I work for HP. <img alt=":(" class="wp-smiley" src="http://www.openstack.org/blog/wp-includes/images/smilies/icon_sad.gif"/>  That’s been corrected.</p></div>
    </content>
    <updated>2012-02-16T14:23:35Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1997</id>
    <link href="http://www.openstack.org/blog/2012/02/1997/" rel="alternate" type="text/html"/>
    <title>Under the hood of Swift: the Ring</title>
    <summary>This is the first post in series that summarizes our analysis of Swift architecture. We’ve tried to highlight some points that are not clear enough in the official documentation. Our primary base was an in-depth look into the source code. The following material applies to version 1.4.6 of Swift. The Ring is the vital part [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is the first post in series that summarizes our analysis of Swift architecture. We’ve tried to highlight some points that are not clear enough in the official documentation. Our primary base was an in-depth look into the source code. </p>
<p>The following material applies to version 1.4.6 of Swift. </p>
<p>The Ring is the vital part of Swift architecture. This half database, half configuration file keeps track of where all data resides in the cluster. For each possible path to any stored entity in the cluster, the Ring points to the particular device on the particular physical node.</p>
<p>There are three types of entities that Swift recognizes: accounts, containers and objects. Each type has the ring of its own, but all three rings are put up the same way. Swift services use the same source code to create and query all three rings. Two Swift classes are responsible for this tasks: <tt>RingBuilder</tt> and <tt>Ring</tt> respectively.</p>
<h3>Ring data structure</h3>
<p>Every Ring of three in Swift is the structure that consists of 3 elements:</p>
<ul>
<li>a list of devices in the cluster, also known as <tt>devs</tt> in the <tt>Ring</tt> class;</li>
<li>a list of lists of devices ids indicating partition to data assignments, stored in variable named <tt>_replica2part2dev_id</tt>;</li>
<li>an integer number of bits to shift an MD5-hashed path to the account/container/object to calculate the partition index for the hash (partition shift value, <tt>part_shift</tt>).</li>
</ul>
<h5>List of devices</h5>
<p>A list of devices includes all storage devices (disks) known to the ring. Each element of this list is a dictionary of the following structure:</p>
<table border="0" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<th width="15%">Key</th>
<th width="15%">Type</th>
<th>Value</th>
</tr>
<tr>
<td>id</td>
<td>integer</td>
<td>Index of the devices list</td>
</tr>
<tr>
<td>zone</td>
<td>integer</td>
<td>Zone the device resides in</td>
</tr>
<tr>
<td>weight</td>
<td>float</td>
<td>The relative weight of the device to the other devices in the ring</td>
</tr>
<tr>
<td>ip</td>
<td>string</td>
<td>IP address of server containing the device</td>
</tr>
<tr>
<td>port</td>
<td>integer</td>
<td>TCP port the server uses to serve requests for the device</td>
</tr>
<tr>
<td>device</td>
<td>string</td>
<td>Disk name of the device in the host system, e.g. <tt>sda1</tt>. It is used to identify disk mount point under <tt>/srv/node</tt> on the host system</td>
</tr>
<tr>
<td>meta</td>
<td>string</td>
<td>General-use field for storing arbitrary information about the device. Not used by servers directly</td>
</tr>
</tbody>
</table>
<p>Some device management can be performed using values in the list. First, for the removed devices, the <tt>'id'</tt> value is set to <tt>'None'</tt>. Device IDs are generally not reused. Second, setting <tt>'weight'</tt> to 0.0 disables the device temporarily, as no partitions will be assigned to that device.</p>
<h5>Partitions assignment list</h5>
<p>This data structure is a list of N elements, where N is the replica count for the cluster. The default replica count is 3. Each element of partitions assignment list is an <tt>array('H')</tt>, or Python compact efficient array of short unsigned integer values. These values are actually index into a list of devices (see previous section). So, each <tt>array('H')</tt> in the partitions assignment list represents mapping partitions to devices ID.</p>
<p>The ring takes a configurable number of bits from a path’s MD5 hash and converts it to the long integer number. This number is used as an index into the <tt>array('H')</tt>. This index points to the array element that designates an ID of the device to which the partition is mapped. Number of bits kept from the hash is known as the partition power, and 2 to the partition power indicates the partition count.</p>
<p>For a given partition number, each replica’s device will not be in the same zone as any other replica’s device. Zones can be used to group devices based on physical locations, power separations, network separations, or any other attribute that could make multiple replicas unavailable at the same time.</p>
<h5>Partition Shift Value</h5>
<p>This is the number of bits taken from MD5 hash of <tt>'/account/[container/[object]]'</tt> path to calculate partition index for the path. Partition index is calculated by translating binary portion of hash into integer number.</p>
<h3>Ring operation</h3>
<p>The structure described above is stored as pickled (see <a href="http://docs.python.org/library/pickle.html">Python <tt>pickle</tt></a>) and gzipped (see <a href="http://docs.python.org/library/gzip.html#gzip.GzipFile">Python <tt>gzip.GzipFile</tt></a>) file. There are three files, one per ring, and usually their names are:</p>
<pre><code>account.ring.gzcontainer.ring.gzobject.ring.gz</code></pre>
<p>These files must exist in <tt>/etc/swift</tt> directory on every Swift cluster node, both Proxy and Storage, as services on all these nodes use it to locate entities in cluster. Moreover, ring files on all nodes in the cluster must have the same contents, so cluster can function properly.</p>
<p>There are no internal Swift mechanisms that can guarantee that the ring is consistent, i.e. gzip file is not corrupt and can be read. Swift services have no way to tell if all nodes have the same version of rings. Maintenance of ring files is administrator’s responsibility. These tasks can be automated by means external to the Swift itself, of course.</p>
<p>The Ring allows any Swift service to identify which Storage node to query for the particular storage entity. Method Ring.get_nodes(account, container=None, obj=None) is used for identification of target Storage node for the given path (<tt>/account[/container[/object]]</tt>). It returns the tuple of partition and dictionary of nodes. The partition is used for constructing the local path to object file or account/container database. Nodes dictionary elements have the same structure as the devices in list of devices (see above).</p>
<h3>Ring management</h3>
<p>Swift services can not change the Ring. Ring is managed by swift-ring-builder script. When new Ring is created, first administrator should specify builder file and main parameter of the Ring: partition power (or partition shift value), number of replicas of each partition in cluster, and the time in hours before a specific partition can be moved in succession:</p>
<pre><code>swift-ring-builder &lt;builder_file&gt; create &lt;part_power&gt; &lt;replicas&gt; &lt;min_part_hours&gt;</code></pre>
<p>When the temporary builder file structure is created, administrator should add devices to the Ring. For each device, required values are zone number, IP address of the Storage node, port on which server is listening, device name (e.g. <tt>sdb1</tt>), optional device meta-data (e.g., model name, installation date or anything else) and device weight:</p>
<pre><code>swift-ring-builder &lt;builder_file&gt; add z&lt;zone&gt;-&lt;ip&gt;:&lt;port&gt;/&lt;device_name&gt;_&lt;meta&gt; &lt;weight&gt;</code></pre>
<p>Device weight is used to distribute partitions between the devices. More the device weight, more partitions are going to be assigned to that device. Recommended initial approach is to use the same size devices across the cluster and set weight 100.0 to each device. For devices added later, weight should be proportional to the capacity. At this point, all devices that will initially be in the cluster, should be added to the Ring. Consistency of the builder file can be verified before creating actual Ring file:</p>
<pre><code>swift-ring-builder &lt;builder_file&gt;</code></pre>
<p>In case of successful verification, the next step is to distribute partitions between devices and create actual Ring file. It is called ‘rebalance’ the Ring. This process is designed to move as few partitions as possible to minimize the data exchange between nodes, so it is important that all necessary changes to the Ring are made before rebalancing it:</p>
<pre><code>swift-ring-builder &lt;builder_file&gt; rebalance</code></pre>
<p>The whole procedure must be repeated for all three rings: account, container and object. The resulting <tt>.ring.gz</tt> files should be pushed to all nodes in cluster. Builder files are also needed for the future changes to rings, so they should be backed up and kept in safe place. One of approaches is to put them to the Swift storage as ordinary objects.</p>
<h3>Physical disk usage</h3>
<p>Partition is essentially the block of data stored in the cluster. This does not mean, however, that disk usage is constant for all partitions. Distribution of objects between the partitions is based on the object path hash, not the object size or other parameters. Objects are not partitioned, which means that an object is kept as a single file in storage node file system (except very large objects, greater than 5Gb, which can be uploaded in segments – see <a href="http://docs.openstack.org/trunk/openstack-object-storage/admin/content/using-swift-to-manage-segmented-objects.html">the Swift documentation</a>).</p>
<p>The partition mapped to the storage device is actually a directory in structure under <tt>/srv/node/&lt;dev_name&gt;</tt>. The disk space used by this directory may vary from partition to partition, depending on size of objects that have been placed to this partition by mapping hash of object path to the Ring.</p>
<p>In conclusion it should be said that the Swift Ring is a beautiful structure, though it lacks a degree of automation and synchronization between nodes. I’m going to write about how to solve these problems in one of the following posts.</p>
<h3>More information</h3>
<p>More information about Swift Ring can be found in following sources:<br/>
<a href="http://swift.openstack.org/overview_ring.html">Official Swift documentation</a> – base source for description of data structure<br/>
<a href="https://github.com/openstack/swift/tree/master/swift/common/ring">Swift Ring source code on Github</a> – code base of <tt>Ring</tt> and <tt>RingBuilder</tt> Swift classes.<br/>
<a href="http://blog.chmouel.com/">Blog of Chmouel Boudjnah</a> – contains useful Swift hints</p></div>
    </content>
    <updated>2012-02-15T09:45:57Z</updated>
    <category term="Documentation"/>
    <category term="1.4.6"/>
    <category term="documentation"/>
    <category term="OpenStack"/>
    <category term="ring"/>
    <category term="SWIFT"/>
    <author>
      <name>Mirantis Inc.</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1981</id>
    <link href="http://www.openstack.org/blog/2012/02/openstack-governance-elections-spring-2012/" rel="alternate" type="text/html"/>
    <title>OpenStack Governance Elections Spring 2012</title>
    <summary>The time is once again upon us for our OpenStack Governance Elections. The OpenStack community is called to elect the Project Technical Leads and two seats of the Project Policy Board. The election committee is made of Stefano Maffulli, Lloyd Dewolf and Dave Nielsen. February 16 – 26 11:59 PST: Nominations open. February 28 – [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The time is once again upon us for our <a href="http://wiki.openstack.org/Governance">OpenStack Governance</a> Elections. The OpenStack community is called to elect the Project Technical Leads and two seats of the <a href="http://wiki.openstack.org/Governance/PPB">Project Policy Board</a>. The election committee is made of Stefano Maffulli, Lloyd Dewolf and Dave Nielsen.</p>
<ul>
<li>February 16 – 26 11:59 PST: Nominations open.</li>
<li>February 28 – March 3 11:59 PST: Online voting open.</li>
<li>March 3 11:59 PST: Voting closed.</li>
</ul>
<p>Final results will be posted immediately upon election close.</p>
<h3 dir="ltr">What seats are up for election</h3>
<ul>
<li>NOVA Project Team Lead (1 Position)</li>
<li>SWIFT Project Team Lead (1 Position)</li>
<li>GLANCE Project Team Lead (1 Position)</li>
<li>HORIZON Project Team Lead (1 Position)</li>
<li>KEYSTONE Project Team Lead (1 Position)</li>
<li>Project Policy Board (2 Open Positions)</li>
</ul>
<h3 dir="ltr">How to nominate yourself or others as Project Technical Lead</h3>
<p>Only OpenStack community members who have code in the respective OpenStack subproject are eligible to be elected as that subproject’s Project Team Lead. Please nominate someone from the developer community or yourself at <a href="http://etherpad.openstack.org/Spring2012-Nominees">http://etherpad.openstack.org/Spring2012-Nominees</a> under the <em>Nominees</em> heading.  Please provide the name and email address of the nominee. The election committee will then confirm with the nominee that they are willing to run for the position.The list of Approved Candidates will be announced with a new blog post on <a href="http://openstack.org/blog">openstack.org/blog</a> when online voting opens (Feb 28).</p>
<h3 dir="ltr">How to nominate yourself or others as member of the Project Policy Board</h3>
<p>Any registered member of the OpenStack Launchpad group is eligible to run or be nominated for a position on the Project Policy Board. If you want to vote and/or run for a seat you need to register on Launchpad and add yourself to the public OpenStack group on <a href="https://launchpad.net/openstack">https://launchpad.net/~openstack</a>. Please nominate someone from the community or yourself at <a href="http://etherpad.openstack.org/Spring2012-Nominees">http://etherpad.openstack.org/Spring2012-Nominees</a> under the <em>Nominees</em> heading. Please give the name and email address of the nominee. The election committee will then confirm with the nominee that they are willing to run for the position. The list of Approved Candidates will be announced with a new blog post on <a href="http://openstack.org/blog">openstack.org/blog</a> right before the election starts.</p>
<h3 dir="ltr">How to register to vote for PTL</h3>
<p>Only OpenStack community members who have code in the respective OpenStack subproject are eligible to vote for that subproject’s Project Team Lead.  The authoritative list of eligible voters and nominees is the Authors file in each repository. For example, the list of Nova authors is <a href="https://github.com/openstack/nova/blob/master/Authors:">https://github.com/openstack/nova/blob/master/Authors</a>.<br/>
Make sure your name and correct email address is there or you won’t be able to vote.</p>
<h3 dir="ltr">How to register to vote for Project Policy Board</h3>
<p>Any registered member of the OpenStack Launchpad group is eligible to vote for the Project Policy Board. If you want to vote you need to register to Launchpad and add yourself to the public OpenStack group on <a href="https://launchpad.net/openstack">https://launchpad.net/~openstack</a> before registering as a voter using the form at <a href="http://ppbelectionsregistration.openstack.org/">http://ppbelectionsregistration.openstack.org/</a>. Company affiliation is only collected as an interesting statistic; it has no effect on the outcome of the election.</p>
<h3 dir="ltr">Voting process</h3>
<p>Like previous OpenStack Governance Elections, we will use the Condorcet Internet Voting Service from Cornell University,<a href="http://www.cs.cornell.edu/andru/civs.html"> http://www.cs.cornell.edu/andru/civs.html</a>. This tool uses the Condorcet method of voting which invokes ranking the nominees instead of just selecting one choice. More information on this methodology is at<a href="http://www.cs.cornell.edu/w8/%7Eandru/civs/rp.html"> http://www.cs.cornell.edu/w8/~andru/civs/rp.html</a>.</p>
<p>All registered voters will receive an email with a unique link allowing them to privately vote.</p>
<p>Please note that the voting system is run using private polls with restricted access to ensure voter authenticity; however all results will be made public once the election ends. Voter anonymity is guaranteed. The result’s ranking will be evaluated using Schulze (also known as Beatpath or CSSD) completion rule.</p>
<p>Thanks for participating in this essential process. Please remind your friends and colleagues to get involved, register and vote!</p></div>
    </content>
    <updated>2012-02-13T07:00:01Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Governance"/>
    <category term="Elections"/>
    <category term="PPB"/>
    <category term="PTL"/>
    <category term="spring 2012"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1984</id>
    <link href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/" rel="alternate" type="text/html"/>
    <title>Community Weekly Review (Feb 3-10)</title>
    <summary>OpenStack Community Newsletter –February 10, 2012 HIGHLIGHTS OpenStack Bug Squashing day was a success and we should repeat it (see graphs below) OpenStack Foundation Update http://lists.openstack.org/pipermail/foundation/2012-February/000123.html Ceph Lords meetup in San Francisco has links to recorded presentations http://www.openstack.org/blog/2012/02/recap-ceph-lords-openstack-sf-meetup-feb-02/ Feedback from FOSDEM 2012 meetings http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/ and a visual https://twitter.com/#!/smaffulli/status/165746062181670912/photo/1 Canonical published guide to automatic testing on [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>OpenStack Community Newsletter –February 10, 2012<br/>
</strong></p>
<p><strong>HIGHLIGHTS</strong></p>
<ul>
<li>OpenStack Bug Squashing day was a success and we should repeat it (see graphs below)</li>
<li>OpenStack Foundation Update <a href="http://lists.openstack.org/pipermail/foundation/2012-February/000123.html">http://lists.openstack.org/pipermail/foundation/2012-February/000123.html</a></li>
<li>Ceph Lords meetup in San Francisco has links to recorded presentations <a href="http://www.openstack.org/blog/2012/02/recap-ceph-lords-openstack-sf-meetup-feb-02/">http://www.openstack.org/blog/2012/02/recap-ceph-lords-openstack-sf-meetup-feb-02/</a></li>
<li>Feedback from FOSDEM 2012 meetings <a href="http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/">http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/</a> and a visual <a href="https://twitter.com/#!/smaffulli/status/165746062181670912/photo/1">https://twitter.com/#!/smaffulli/status/165746062181670912/photo/1</a></li>
<li>Canonical published guide to automatic testing on Ubuntu  <a href="http://www.openstack.org/blog/2012/02/automating-openstack-testing-on-ubuntu/">http://www.openstack.org/blog/2012/02/automating-openstack-testing-on-ubuntu/</a></li>
<li>How does a PUT to a swift object server look like <a href="http://blog.chmouel.com/2012/02/06/anatomy-of-a-swift-put-query-to-object-server/">http://blog.chmouel.com/2012/02/06/anatomy-of-a-swift-put-query-to-object-server/</a></li>
<li>The “GitHub effect” in open source project <a href="http://fnords.wordpress.com/2012/02/01/about-collaboration/">http://fnords.wordpress.com/2012/02/01/about-collaboration/</a></li>
<li>How to audit a Swift cluster <a href="http://blog.chmouel.com/2012/02/01/audit-a-swift-cluster/">http://blog.chmouel.com/2012/02/01/audit-a-swift-cluster/</a></li>
<li>Opened the Call for speaker for OpenStack Conference <a href="http://www.openstack.org/conference/san-francisco-2012/speakers/">http://www.openstack.org/conference/san-francisco-2012/speakers/</a></li>
<li>Book your room for the week <a href="https://resweb.passkey.com/go/DRAC2012">https://resweb.passkey.com/go/DRAC2012</a></li>
</ul>
<p><strong>EVENTS</strong></p>
<ul>
<li>OpenStack Party @ CloudConnect 2012 <a href="http://www.openstack.org/blog/2012/02/openstack-party-cloudconnect-2012/">http://www.openstack.org/blog/2012/02/openstack-party-cloudconnect-2012/</a></li>
<li>OpenStack Foundation Meetup @CloudConnect Feb 15, 2012 – Santa Clara, CA <a href="http://www.meetup.com/openstack/events/51553992" target="_blank">http://www.meetup.com/openstack/events/51553992</a></li>
<li>
<div>Inaugural OpenStack DC Meetup Feb 16, 2012 – Washington, DC <a href="http://www.meetup.com/OpenStackDC/events/47106902/" target="_blank">http://www.meetup.com/OpenStackDC/events/47106902/</a></div>
</li>
<li>
<div>FLOSSTalk Kosovo Feb 22, 2012 – UNICEF Innovations Lab Kosovo in Prishtina, Kosovo <a href="http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack" target="_blank">http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack</a></div>
</li>
<li>
<div>OpenStack Spring 2012 Design Summit Apr 16 – 18 and Conference Apr 19-20 – San Francisco, California <a href="http://www.openstack.org/conference/" target="_blank">http://openstack.org/conference/</a></div>
</li>
</ul>
<p><strong>OTHER NEWS</strong></p>
<ul>
<li>Do you want to help OpenStack at Google Summer of Code? Chime in <a href="https://lists.launchpad.net/openstack/msg07441.html">https://lists.launchpad.net/openstack/msg07441.html</a> and <a href="http://wiki.openstack.org/GSoC2012">http://wiki.openstack.org/GSoC2012</a></li>
<li>Swift 1.4.6 release proposed candidate <a href="https://lists.launchpad.net/openstack/msg07432.html">https://lists.launchpad.net/openstack/msg07432.html</a></li>
<li>Mailing list etiquette <a href="http://wiki.openstack.org/MailingListEtiquette">http://wiki.openstack.org/MailingListEtiquette</a></li>
<li>Do we need a mailing list only for developers? Chime in <a href="https://lists.launchpad.net/openstack/msg07277.html">https://lists.launchpad.net/openstack/msg07277.html</a></li>
<li>OpenStack Wiki Recent Changes – <a href="http://wiki.openstack.org/RecentChanges">http://wiki.openstack.org/RecentChanges</a></li>
<ul>
<li>Keystone Folsom summit topics <a href="http://wiki.openstack.org/KeystoneFolsomSummitTopics">http://wiki.openstack.org/KeystoneFolsomSummitTopics</a></li>
<li>Documentation HowTo <a href="http://wiki.openstack.org/Documentation/HowTo">http://wiki.openstack.org/Documentation/HowTo</a></li>
<li>Getting Started with OpenStack in Japanese <a href="http://wiki.openstack.org/GettingStarted/ja">http://wiki.openstack.org/GettingStarted/ja</a></li>
</ul>
<li>Project meeting summary <a href="http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-02-07-21.03.html">http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-02-07-21.03.html</a></li>
</ul>
<p><strong>COMMUNITY STATISTICS</strong></p>
<ul>
<li>The charts below represent the work done on bugs during Bug Squashing Day Feb 2 2012.</li>
</ul>

<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-tempest/" title="bug-squashing-day-2012-02-tempest"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Tempest" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-tempest-150x150.png" title="bug-squashing-day-2012-02-tempest" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-manuals/" title="bug-squashing-day-2012-02-manuals"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Manuals" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-manuals-150x150.png" title="bug-squashing-day-2012-02-manuals" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-quantum/" title="bug-squashing-day-2012-02-quantum"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Quantum" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-quantum-150x150.png" title="bug-squashing-day-2012-02-quantum" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-keystone/" title="bug-squashing-day-2012-02-keystone"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Keystone" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-keystone-150x150.png" title="bug-squashing-day-2012-02-keystone" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-horizon/" title="bug-squashing-day-2012-02-horizon"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Horizon" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-horizon-150x150.png" title="bug-squashing-day-2012-02-horizon" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-glance/" title="bug-squashing-day-2012-02-glance"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Glance" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-glance-150x150.png" title="bug-squashing-day-2012-02-glance" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-swift/" title="bug-squashing-day-2012-02-swift"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Swift" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-swift-150x150.png" title="bug-squashing-day-2012-02-swift" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/02/community-weekly-review-feb-3-10/bug-squashing-day-2012-02-nova/" title="bug-squashing-day-2012-02-nova"><img alt="Bug Squashing Day Feb 2 2012 - Results for project: Nova" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/bug-squashing-day-2012-02-nova-150x150.png" title="bug-squashing-day-2012-02-nova" width="150"/></a>

<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>This weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</p></div>
    </content>
    <updated>2012-02-10T17:10:04Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://justwriteclick.com/?p=1847</id>
    <link href="http://justwriteclick.com/2012/02/10/open-advice-book-now-available/" rel="alternate" type="text/html"/>
    <title>Open Advice Book Now Available</title>
    <summary>What we wish we had known when we started working on free open source software (FOSS) – that is the premise of this essay collection, Open Advice. What’s especially interesting to me after having read all 42 essays is there isn’t really a pattern like you’d see when looking at “what I would tell my [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjustwriteclick.com%2F2012%2F02%2F10%2Fopen-advice-book-now-available%2F"><br/>
				<img height="61" src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjustwriteclick.com%2F2012%2F02%2F10%2Fopen-advice-book-now-available%2F&amp;source=annegentle&amp;style=compact&amp;b=2" width="50"/><br/>
			</a>
		</div>
<p><a href="http://open-advice.org"><img alt="Open Advice cover" class="alignleft" height="312" src="http://open-advice.org/images/cover.jpg" style="margin: 10px;" title="Open Advice: FOSS What We Wish We Had Known When We Started" width="217"/></a>What we wish we had known when we started working on free open source software (FOSS) – that is the premise of this essay collection, <a href="http://open-advice.org/">Open Advice</a>. What’s especially interesting to me after having read all 42 essays is there isn’t really a pattern like you’d see when looking at “what I would tell my younger self” such as “believe in yourself” or “don’t worry about what others think.” Those themes do come through, but the heart of the collection centers on open source projects, software, users, coders, and the myriad roles that make an open source project great. It’s a collection of great stories and great experiences.</p>
<p>One theme that stuck out to me was “I wish I had been less arrogant.” So many people, women especially, can be put off by the attitudes displayed by an open source online chat room or mailing list. I know I’m happy to see more women’s names on the OpenStack mailing list, asking and answering questions. I’m also happy to note that the OpenStack community is  polite, professional, and welcoming to all.</p>
<p>An essay that fascinated me was “27 Things I’m Happy I Didn’t Know” by <a href="http://untangled.biz/">Alexandra Leisse</a>. Ignorance is bliss in many arenas, open source is no exception. Sometimes learning from mistakes is the best lesson.</p>
<p>I also loved the “Never on a Friday” section of <a href="http://www.w3.org/People/khudairi">Sally Khudairi</a>‘s essay that leads with “Everyone is a marketer.” She launched a new homepage for W3C on a Friday then boarded a plane for Paris. She landed to a flood of messages about a particular tag choice. Fabulous story.</p>
<p><a href="http://blogs.gnome.org/bolsh/">Dave Neary</a>‘s essay about conference planning, “Getting People Together,” has a detailed section about budgets and funding plus content and parties. Valuable and practical, this essay should be required reading for both conference planners and attendees.</p>
<p>What did I write about? Documentation and My Former Self is the title, and in it I realize how many contradictions I’ve discovered on my journey. Often, adding more and more observations will bring a flip turn to my stance on a documentation strategy. Fascinating. </p>
<p>The <a href="http://open-advice.org/Open-Advice.pdf">Open Advice book in PDF format</a> is downloadable for all and I’d encourage you to read it, enjoy it, learn from it, and share it. Then, join in an open source community with those lessons already learned.</p></div>
    </content>
    <updated>2012-02-10T15:54:54Z</updated>
    <category term="techpubs"/>
    <category term="writing"/>
    <category term="advice"/>
    <category term="book"/>
    <category term="open source"/>
    <category term="openstack"/>
    <author>
      <name>annegentle</name>
    </author>
    <source>
      <id>http://justwriteclick.com</id>
      <link href="http://justwriteclick.com/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://justwriteclick.com" rel="alternate" type="text/html"/>
      <subtitle>Documentation as conversation</subtitle>
      <title>Just Write Click » openstack</title>
      <updated>2012-02-10T15:55:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1929</id>
    <link href="http://www.openstack.org/blog/2012/02/recap-ceph-lords-openstack-sf-meetup-feb-02/" rel="alternate" type="text/html"/>
    <title>Recap: “Ceph Lords” OpenStack SF Meetup Feb 02</title>
    <summary>On February 2nd, a league of extraordinary gentlemen gathered inside a crowded chamber for the “Ceph Lords” OpenStack SF Meetup.  About 75 Stackers were in attendance making this event a smashing success! If you missed this Meetup, then you should watch the recorded presentations in order to experience the lively discourse.  Also, check out the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.openstack.org/blog/wp-content/uploads/2012/02/openstack_sf_meetup_ceph.jpeg"><img alt="OpenStack SF Meetup Ceph" class="alignright size-full wp-image-1936" height="159" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/openstack_sf_meetup_ceph.jpeg" width="240"/></a></p>
<p>On February 2<sup>nd</sup>, a league of extraordinary gentlemen gathered inside a crowded chamber for the “<a href="http://blog.dreamhost.com/2012/01/30/dreamhost-ceph-openstack-meetup-2/">Ceph Lords</a>” <a href="http://www.meetup.com/openstack/">OpenStack SF Meetup</a>.  About 75 Stackers were in attendance making this event a smashing success!</p>
<p>If you missed this Meetup, then you should watch the <a href="http://www.pistoncloud.com/2012/02/ceph-lords-san-francisco-openstack-event/">recorded presentations</a> in order to experience the lively discourse.  Also, check out the <a href="http://www.flickr.com/photos/77692232@N00/sets/72157629218977431/with/6814501589/">photos</a> that were taken by the Piston Cloud crew.  They did a good job capturing the fun, relaxed ambiance of the gathering.</p>
<p>The Meetup was facilitated by <a href="http://www.pistoncloud.com/">Piston Cloud</a> and hosted by <a href="http://dreamhost.com/">DreamHost</a>.  Scrumptious tacos were catered by <a href="http://tacolicioussf.com/">Tacolicious</a>, and <a href="http://magnoliapub.com/">Magnolia Brewery</a> provided a keg of ice-cold California Kolsh beer.</p>
<p><a href="http://ceph.newdream.net/openstack/">Ceph</a> was in the spotlight throughout the Meetup.  For those few who are still unfamiliar with Ceph, it’s a massively scalable, open source, distributed storage system.  The presenters focused primarily on how Ceph works with the cloud software stack, and how it’s currently being implemented in production.</p>
<p>The DreamHost team kicked off the event.  Ben Cherian provided a brief overview on the reasons why DreamHost chose to use Ceph as the storage foundation for their current hosting products and upcoming cloud services.</p>
<p>Tommi Virtanen dived into the Ceph platform from a technical perpective.  He described the major components of Ceph, its storage architecture, and how it distributes data.</p>
<p>Carl Perry talked about how DreamHost is currently deploying Ceph.  He touched on specifics such as the hardware and tools involved, the level of automation, and things learned along the way.</p>
<p>Christopher MacGown, Co-Founder and CTO of Piston Cloud, was the final presenter.  He opened with how storage should work in a cloud environment and why Piston Cloud chose Ceph as the backend storage solution.  He finished by describing how his company is using Ceph with the Piston Enterprise OS™ software.</p>
<p><a href="http://www.openstack.org/blog/wp-content/uploads/2012/02/openstack-sf-meetup-ceph.jpeg"><img alt="OpenStack SF Meetup Ceph" class="alignnone size-full wp-image-1957" height="338" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/openstack-sf-meetup-ceph.jpeg" width="600"/></a></p>
<p> </p></div>
    </content>
    <updated>2012-02-10T03:24:59Z</updated>
    <category term="Event"/>
    <category term="Meetup"/>
    <author>
      <name>Brent Scotten</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=859</id>
    <link href="http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/08/fosdem-2012-feedback/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">FOSDEM 2012 feedback</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">I’m back from Brussels, where happened the coldest FOSDEM ever. It started on Friday night with the traditional beer event. Since the Delirium was a bit small to host those thousands of frozen geeks, the FOSDEM organizers had enlisted the whole block as approved bars ! On the Saturday, I spent most of my time [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=859&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m back from Brussels, where happened the coldest FOSDEM ever. It started on Friday night with the traditional beer event. Since the Delirium was a bit small to host those thousands of frozen geeks, the FOSDEM organizers had enlisted the whole block as approved bars !</p>
<p>On the Saturday, I spent most of my time in the <a href="http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom" target="_blank">Cloud and Virtualization devroom</a>, which I escaped only to see Simon Phipps announce the <a href="http://blogs.computerworlduk.com/simon-says/2012/02/a-new-osi-for-a-new-decade/index.htm" target="_blank">new membership-based OSI</a>, and Paolo Bonzini talking about the KVM ecosystem (in a not technical enough way, IMO). My own <a href="http://t.co/8NaehBzT" target="_blank">OpenStack talk</a> was made a bit difficult due to the absence of mike to cover the 550-seat Chavanne auditorium… but the next talks got one. The highlight of the day was Ryan Lane’s “infrastructure as an open source project” presentation, about how Wikimedia Labs <a href="http://t.co/aARDOAvY" target="_blank">uses Git, Gerrit, Jenkins and OpenStack</a> to handle its infrastructure like a contributor-driven open source project. The day ended with a good and frank <a href="http://t.co/lkmsAYFU" target="_blank">discussion between OpenStack developers</a>, with upstream projects and downstream distributions.</p>
<p>On Sunday I tried to hop between devrooms, but in a lot of cases the room was full and I couldn’t enter, so I spent more time in the hallway track. I enjoyed Soren’s talk about using more prediction algorithms (instead of simple thresholds) in monitoring systems, introducing his <a href="http://www.surveilr.net/2011/09/15/announcing-surveilr-not-your-average-monitoring-system/" target="_blank">Surveilr project</a>. The highlight of the day was Dan Berrangé’s  talk about <a href="http://berrange.com/posts/2012/01/17/building-application-sandboxes-with-libvirt-lxc-kvm/" target="_blank">using libvirt to run sandboxed applications</a>, using virt-sandbox. There are quite a few interesting uses for this, and the performance penalty sounds more than acceptable.</p>
<p>Overall it was a great pleasure for me to attend FOSDEM this year. Congratulations to the organizers again. I’ll be back next year, hopefully it will be warmer <img alt=":)" class="wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif"/> </p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/859/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/859/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/859/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=859&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-02-08T14:49:26Z</updated>
    <published>2012-02-08T14:49:26Z</published>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1924</id>
    <link href="http://www.openstack.org/blog/2012/02/automating-openstack-testing-on-ubuntu/" rel="alternate" type="text/html"/>
    <title>Automating Openstack Testing on Ubuntu</title>
    <summary>(Original Post) During the Ubuntu precise development cycle the Canonical Platform Server Team have been working on automating testing of Openstack on Ubuntu. The scope of this work was: Per-commit testing of Openstack trunk to evaluate the current state of the upstream codebase in-conjunction with the current packaging in Ubuntu precise and the current Juju [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>(<a href="http://cloud.ubuntu.com/2012/02/automating-openstack-testing-on-ubuntu/">Original Post</a>)</p>
<p>During the Ubuntu precise development cycle the Canonical Platform Server Team have been working on automating testing of Openstack on Ubuntu.</p>
<p>The scope of this work was:</p>
<ol>
<li>Per-commit testing of Openstack trunk to evaluate the current state of the upstream codebase in-conjunction with the current packaging in Ubuntu precise and the current Juju charms to deploy Openstack.</li>
<li>SRU testing for Openstack Diablo on Ubuntu 11.10.</li>
</ol>
<p>Openstack do a lot of pre-commit testing through the use of <a href="http://review.openstack.org">gerrit</a> with <a href="http://jenkins.openstack.org">Jenkins</a>; we wanted to supplement this with Ubuntu focused testing to provide another dimension to the testing already completed upstream.</p>
<p>So grab a coffee and make yourself comfortable; this is not a short read….</p>
<p><strong>Lab Setup</strong></p>
<p>The Ubuntu Openstack QA lab consists of 12 servers; the primary server in the solution is an Ubuntu 11.10 install providing the following functions:</p>
<ol>
<li><a href="http://juju.ubuntu.com">Juju</a> – used to deploy Openstack charms in the Lab</li>
<li>Cobbler to support server provisioning (using the Ubuntu Orchestra packages in Oneiric)</li>
<li>Jenkins CI – provides triggering based on upstream commits to github repositories and general job control and reporting.</li>
<li>Schroots for Oneiric and Precise for building packages locally</li>
<li>A reprepro managed local archive for Oneiric and Precise</li>
<li>Squid based archive caching to reduce installation times in the lab</li>
</ol>
<p>This server also acts at the gateway into and out of the Lab (it’s setup as a NAT router).</p>
<p>The other 11 servers are registered in Cobbler; All servers are connected to a Sentry CDU (Cabinet Distribution Unit) which allows full power control from Cobbler – thanks goes to Andres Rodriguez for developing the required fence component for Cobbler to support this type of CDU.</p>
<p><strong>Preseeded LVM Snapshot Installs</strong></p>
<p>To initiate a new integration test run requires all machines to be powered down and re-provisioned from scratch.  It is essential that our deployment and test runs can cope the frequency of upstream commits, particularly as the frequency increases as Openstack approaches milestones and releases.   After getting the initial lab setup in place, we were able to tear down all machines, re-provision and deploy Openstack in ~30mins.</p>
<p>It was important that we are able to minimize the time taken to complete the testing cycle.   To do so, we’ve employed the use of LVM snapshotting and restoration of the root partition during the the netboot installation.   The process is as follows:</p>
<ol>
<li>Test run begins</li>
<li>Juju deploys a service (i.e. nova-compute)</li>
<li>A machine is netbooted and a preseeded LVM-based Ubuntu installation takes place onto /dev/qalab/root</li>
<li>At the end of the installation, the root filesystem is moved to /dev/qalab/pristine-[release]-root and a snapshot created at /dev/qalab/root</li>
<li>The machine reboots, runs Juju and deploys nova-compute as pat of the rest of the Openstack deployment. This deployment is smoke tested.</li>
<li>The next test run begins.  All machines are terminated. Juju redeploys nova-compute, a machine is netbooted and Ubuntu installation kicks off.</li>
<li>The installation checks for the existence of a logical volume at /dev/qalab/pristine-[release]-root.  If it exists, it creates a new snapshot at /dev/qalab/root and reboots. If it does not, continues with installation and goto step 4.</li>
<li>System reboots, Juju installs and redeploys nova-compute to a fresh Ubuntu installation.</li>
</ol>
<p>This process takes place on all nodes in parallel.  With it in place, we were able to cut down the time it took to tear-down and re-provision a node from ~30 minutes to 10 to 15 minutes depending on the service being deployed.</p>
<p>By taking this approach we are also minimize the chance of any nodes hitting an archive inconsistency during installation. This is a known issue when deploying the development release and halts installation on any node that hits it, failing the entire deployment.</p>
<p>All of this is embedded in debian-installer preseeds via Cobbler snippets.  The snippets and kick starts are available at lp:~openstack-ubuntu-testing/+junk/cobbler-lvm-snapshot.</p>
<p>In the future, we’ll be investigating the use of kexec as an alternative to reboot after snapshot restoration to reduce the time spent waiting on servers to boot.  This should minimize the test cycle even more. Credit to James Blair for the idea (see <a href="http://amo-probos.org/post/11)">http://amo-probos.org/post/11</a><a href="http://amo-probos.org/post/11)">)</a>.</p>
<p><strong>Management of Jenkins</strong></p>
<p>All of the projects in Jenkins are managed using Jinja2 XML templates in-conjunction with python-jenkins (<a href="http://launchpad.net/python-jenkins">python-jenkins</a>); this makes it really easy to setup new jobs in the lab and reconfigure existing ones as required (as well as providing great backup!).</p>
<p>Templates and management scripts can be found in lp:~openstack-ubuntu-testing/+junk/jenkins-qa-lab</p>
<p><strong>Testing Openstack Essex on Ubuntu Precise</strong></p>
<p>This testing was the first to be setup in the lab.  Jenkins (using the git plugin) monitors the upstream github.com repositories for commits on the master branch.  When a change is detected the following process is triggered:</p>
<p><strong>Build</strong></p>
<p>Objective: Validate that upstream trunk still builds OK with current packaging for Ubuntu.</p>
<ol>
<li>A new snapshot upstream tarball is generated based on the latests commit to the upstream component.</li>
<li>The latest archive packaging for the component is pulled in from lp:~ubuntu-server-dev/&lt;COMPONENT&gt;/essex</li>
<li>Any changes in the testing packaging for the component are merged from lp:~openstack-ubuntu-testing/&lt;COMPONENT&gt;/essex</li>
<li>New changelog entries are automatically created for the new upstream commits.</li>
<li>The source package is generated and built in a clean schroot using sbuild locally.</li>
</ol>
<p>On the assumption that the package built OK locally:</p>
<ol>
<li>The source package is uploaded to the Testing PPA (ppa:openstack-ubuntu-testing/testing)</li>
<li>The testing packaging branch is push back to lp:~openstack-ubuntu-testing/&lt;COMPONENT&gt;/essex.</li>
<li>The binary packages from the sbuild are installed into the local reprepro managed archive.</li>
</ol>
<p>This process is managed by a single script (<a href="http://bazaar.launchpad.net/~openstack-ubuntu-testing/+junk/jenkins-scripts/view/head%3A/tarball.sh)">tarball.sh</a>); Credit to Chuck Short for pulling together this part of the process based on work from Openstack upstream.</p>
<p>For changes to the nova project the deploy phase is then executed.</p>
<p><strong>Deploy</strong></p>
<p>Objective: Validate that packages install, can be configured and reach a know good state prior to execution of testing.</p>
<p>This phase of testing uses Juju with Cobbler to deploy Openstack into the QA lab infrastructure; It utilizes branches of the Openstack charms to support use of a local archive along with a deployer wrapper around Juju written by Adam Gandelman which executes the actual deployment using Juju and monitors for errors.</p>
<p><a href="http://javacruft.files.wordpress.com/2012/02/running-openstack.jpg"><img alt="" class="aligncenter size-medium wp-image-296" height="118" src="http://javacruft.files.wordpress.com/2012/02/running-openstack.jpg?w=300&amp;h=118" width="300"/></a></p>
<p>The deployer is configured to know where to get the right codebase for the Openstack charms, which services to deploy and which relations to setup between services. As you can see from the above diagram this is non-trivial but the charms and Juju do most of the hard work.</p>
<p>Once Openstack is deployed successfully the test phase is then executed.</p>
<p><strong>Test</strong></p>
<p>Objective: Validate that the Openstack deployment in the lab actually works!</p>
<p>At this point, we can run any integration tests we wish against the newly deployed cloud.  This testing is able to help us achieve multiple goals:</p>
<ul>
<li>Early detection of upstream bugs that break Openstack functionality on Ubuntu</li>
<li>Verification that packaging branches in the development version of Ubuntu are compatible with upstream trunk.</li>
<li>Using these packages, verification that our Juju charms are deploying a functional Openstack cloud and are up-to-date with any deployment-related configuration changes upstream.</li>
</ul>
<p>At the moment this phase looks like this:</p>
<ol>
<li>Configure the Openstack deployment (Adams deployer script provides some utility functions for locating specific services in the environment)
<ul>
<li>Creates network configuration in Nova for the private instance network as well as a pool of public floating IPs.</li>
<li>Upload an image into the Glance server for use during testing</li>
<li>Creates EC2 credentials in the Keystone server for use during testing.</li>
</ul>
</li>
<li>Run the devstack exercise test scripts which ensure basic functionality of the deployment. Currently, this includes:
<ul>
<li>Basic euca-tools EC2 API for starting and stopping instances</li>
<li>EC2 AMI bundle uploads</li>
<li>Floating IP allocation, association and connectivity to instance</li>
<li>Volume creation and attachment to instance</li>
</ul>
</li>
</ol>
<p>Note: These are the same sets of tests that are currently run against proposed commits to gerrit upstream.</p>
<p>Longer term we aim to use the Openstack Tempest test suite in the lab; Adam is currently working on getting this up and running.</p>
<p><strong>Reporting</strong></p>
<p>The Jenkins instance in the QA lab is not publicly accessible; however all jobs run in the lab are published out (using the Jenkins build-publisher plugin) to <a href="https://jenkins.qa.ubuntu.com/view/Precise%20OpenStack%20Testing/">http://jenkins.qa.ubuntu.com</a> so that people can see the current state of the testing packaging in Ubuntu precise.</p>
<p>We are also working on setting up email notifications.</p>
<p><strong>Success so far</strong></p>
<p>Juju charms deploy Openstack components in a configuration that is compatible with upstream trunk prior to updates to packaging in Ubuntu.  Previously packages were updated in the archive first while Juju charm updates lagged behind as incompatibilities were uncovered after the fact.</p>
<p>We enabled automated testing 2 days prior to the 3rd Essex milestone release.  We were able to uncover and help fix a handful of bugs upstream before the release, including critical bugs like <a href="http://pad.lv/921784">921784</a>.  In the past, these bugs were typical uncovered after the release (both upstream and in Ubuntu).</p>
<p>Since E3, there have been even more critical bugs uncovered by this testing and fixed upstream, some of which are only applicable to Ubuntu-specific configurations (not tested upstream) and would have been uncovered by users after code hit the Ubuntu archive (See <a href="http://pad.lv/922232">922232</a>).</p>
<p><strong>Further Plans for the Lab</strong></p>
<p>Pre-commit  testing of changes to stable branches;  The Ubuntu Server team are  working upstream on maintaining the stable branches of released versions  of OpenStack – this work will validate patches proposed to stable  branches in review.openstack.org against the current version of the  packaging in released versions of Ubuntu.  Initially this will target  Diablo on Ubuntu 11.10 but will also support Essex on Ubuntu 12.04 once  released.  Ideally the testing process will provide feedback on  review.openstack.org to help the stable release team review proposed  patches.</p>
<p><strong>References</strong></p>
<p>Jenkins job configurations: lp:~openstack-ubuntu-testing/+junk/jenkins-qa-lab</p>
<p>Scripts supporting the lab: lp:~openstack-ubuntu-testing/+junk/jenkins-scripts</p>
<p>LVM snapshot preseeds and Cobbler snippets: lp:~openstack-ubuntu-testing/+junk/cobbler-lvm-snapshot</p>
<p>All other relevant scripts, charm branches, etc: <a href="https://code.launchpad.net/~openstack-ubuntu-testing/">https://code.launchpad.net/~openstack-ubuntu-testing/</a></p>
<p><strong>Credits</strong></p>
<p>Overall management of delivery and general whip cracking: Dave Walker</p>
<p>Lab installation and base configuration: Pete Graner, Tim Gardner, Brad Figg, James Page</p>
<p>Fence agent for network power control of servers: Andres Rodriguez</p>
<p>Source package creation and build process: Chuck Short and James Page</p>
<p>Deployment testing using Juju: Adam Gandelman</p>
<p>Testing of Openstack: Adam Gandelman</p>
<p>Jenkins packaging, configuration and management: James Page</p>
<p>Gerrit Plugin for pre-commit testing and generally great ideas: Monty Taylor and James Blair</p>
<p>Writing and reviewing this post: Adam Gandelman, Chuck Short and Dave Walker.</p>
<p>  <a href="http://feeds.wordpress.com/1.0/gocomments/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/javacruft.wordpress.com/286/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/javacruft.wordpress.com/286/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/javacruft.wordpress.com/286/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=javacruft.wordpress.com&amp;blog=16060086&amp;post=286&amp;subd=javacruft&amp;ref=&amp;feed=1" width="1"/></p></div>
    </content>
    <updated>2012-02-08T14:44:31Z</updated>
    <category term="Uncategorized"/>
    <category term="Developer"/>
    <category term="ubuntu"/>
    <author>
      <name>canonical</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://javacruft.wordpress.com/?p=286</id>
    <link href="http://ubuntuserver.wordpress.com/2012/02/08/704/" rel="alternate" type="text/html"/>
    <title>Automating Openstack Testing on Ubuntu</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Reblogged from JavaCruft: During the Ubuntu precise development cycle the Canonical Platform Server Team have been working on automating testing of Openstack on Ubuntu. The scope of this work was: Per-commit testing of Openstack trunk to evaluate the current state of the upstream codebase in-conjunction with the current packaging in Ubuntu precise and the current [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=ubuntuserver.wordpress.com&amp;blog=3817322&amp;post=704&amp;subd=ubuntuserver&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="reblog-post">
<p class="reblog-from"><img alt="" class="avatar avatar-25" height="25" src="http://0.gravatar.com/avatar/6a616324b56367b4eb5a35e940f657ff?s=25&amp;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&amp;r=G" width="25"/> <a href="http://javacruft.wordpress.com/2012/02/08/automating-openstack-testing-on-ubuntu/">Reblogged from JavaCruft:</a></p>
<p><a href="http://javacruft.wordpress.com/2012/02/08/automating-openstack-testing-on-ubuntu/" target="_self"><img alt="Click to visit the original post" class="size-full" src="http://javacruft.files.wordpress.com/2012/02/running-openstack.jpg?w=450"/></a>
</p><p dir="auto">
During the Ubuntu precise development cycle the Canonical Platform Server Team have been working on automating testing of Openstack on Ubuntu. The scope of this work was: Per-commit testing of Openstack trunk to evaluate the current state of the upstream codebase in-conjunction with the current packaging in Ubuntu precise and the current Juju charms to deploy Openstack. SRU testing for Openstack Diablo on Ubuntu 11.10. Openstack do a lot of pre-commit testing through the use of gerrit with Jenkins; we …
</p>
</div>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntuserver.wordpress.com/704/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/ubuntuserver.wordpress.com/704/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntuserver.wordpress.com/704/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=ubuntuserver.wordpress.com&amp;blog=3817322&amp;post=704&amp;subd=ubuntuserver&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-02-08T10:29:09Z</updated>
    <category term="Ubuntu Server"/>
    <category term="openstack"/>
    <author>
      <name>JavaCruft</name>
    </author>
    <source>
      <id>http://ubuntuserver.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://ubuntuserver.wordpress.com/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://ubuntuserver.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://ubuntuserver.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://ubuntuserver.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Bits and pieces from the Ubuntu Server Team</subtitle>
      <title>Ubuntu Server Blog » openstack</title>
      <updated>2012-02-08T11:05:17Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1906</id>
    <link href="http://www.openstack.org/blog/2012/02/openstack-party-cloudconnect-2012/" rel="alternate" type="text/html"/>
    <title>OpenStack Party @ CloudConnect 2012</title>
    <summary>For those attending CloudConnect 2012 in Santa Clara –   Join stackers from all over the world at the OpenStack CloudConnect 2012 party at Fahrenheit Lounge, hosted by Mirantis, Rackspace and Cloudscaling. Open bar, Hors D’oeuvres and music all night long. This is the place to be at CloudConnect on a Wednesday night. We’ll have [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p style="text-align: left;"><a href="http://www.openstack.org/blog/feed/openstackparty.eventbrite.com"><img alt="" class="wp-image-1907 alignleft" height="170" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/fahrenheit_inv_badge_small.jpg" style="margin: 10px;" width="175"/></a>For those attending CloudConnect 2012 in Santa Clara –   Join stackers from all over the world at the OpenStack CloudConnect 2012 party at Fahrenheit Lounge, hosted by Mirantis, Rackspace and Cloudscaling.</p>
<p style="text-align: left;">Open bar, Hors D’oeuvres and music all night long. This is the place to be at CloudConnect on a Wednesday night.</p>
<p style="text-align: left;">We’ll have shuttle buses available every 30 minutes, traveling between Santa Clara Convention center parking lot and Fahrenheit Lounge starting at 8pm, immediately after the <a href="http://e2.ma/message/zgvm/fpsu">Cloudscaling cocktail reception</a>.</p>
<p style="text-align: left;">Registration is first come, first serve and the space is limited. Visit <a href="http://openstackparty.eventbrite.com">openstackparty.eventbrite.com</a> to register.</p></div>
    </content>
    <updated>2012-02-07T23:08:44Z</updated>
    <category term="Event"/>
    <category term="Meetup"/>
    <author>
      <name>Mirantis Inc.</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1889</id>
    <link href="http://www.openstack.org/blog/2012/02/openstack-talk-hosted-by-the-computer-society-of-india-pune-chapter/" rel="alternate" type="text/html"/>
    <title>OpenStack Talk hosted by the Computer Society of India Pune Chapter</title>
    <summary>This is a guest post from Devdatta Kulkarni. Thanks Dev for sharing! The Computer Society of India (CSI) Pune chapter organized an OpenStack talk with me, Racker Devdatta Kulkarni, on Saturday January 21, 2012 from 5.00 pm – 6.30 pm. Approximately 35 people attended. The audience primarily consisted of people with a technical background. Technology [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is a guest post from Devdatta Kulkarni. Thanks Dev for sharing!</p>
<p>The <a href="http://www.csi-pune.org/">Computer Society of India (CSI) Pune chapter</a> organized an OpenStack talk with me, Racker Devdatta Kulkarni, on Saturday January 21, 2012 from 5.00 pm – 6.30 pm.</p>
<p><a href="https://secure.flickr.com/photos/39072595@N03/4681144570"><img alt="Sunset in Pune by flickr:yogendra174" class="alignleft size-medium wp-image-1900" height="300" src="http://www.openstack.org/blog/wp-content/uploads/2012/02/sunset_at_pune_yogendra174-216x300.jpg" style="margin: 10px;" title="Sunset in Pune by yogendra174" width="216"/></a>Approximately 35 people attended. The audience primarily consisted of people with a technical background. Technology professionals were the most represented category followed by college students, followed by researchers.</p>
<p>I divided my talk into two parts. In the first part, I touched upon the need for OpenStack, the project’s history and mission, and the current projects. In the second part I delved deeper into design and architectures of Nova, Swift, Glance, and Keystone, and concluded with information about how to participate in the community.</p>
<p>At the end of the talk I did a quick show of hands to find out how many attendees knew about OpenStack prior to the talk. Given that I saw only three hands in response, I think the talk certainly helped in raising the awareness of OpenStack within the technical community in Pune.</p>
<p>Here are some of the questions that came up at the talk. Anne Gentle wrote the answers for the questions and I want to share with the attendees as well as OpenStack blog readers.<br/>
Question 1) Performance benchmarks of OpenStack deployments. They have experimented with deployment of about 200 VMs and were seeing average VM creation time of about 20 minutes. They wanted to know if this was something expected. Also, they were wondering if there are any OpenStack performance benchmark results that can be shared with the community.<br/>
Anne: A 20 minute wait sounds like a long time to me for a single VM but a short time for 200 Vms. We haven’t found a good way to share performance benchmarks yet but a post to the mailing list would probably elicit responses. I’ve also seen John Dickinson talk to folks on IRC about their Object Storage benchmarks.</p>
<p>Question 2) Guidelines on topology. They wanted to know if there are any published guidelines regarding the optimal topology, such as number of glance servers, number of compute, volume, and network nodes in Nova deployments?<br/>
Anne: I’d recommend they take a look at <a href="http://referencearchitecture.org">http://referencearchitecture.org</a> for both physical and logical architecture diagrams that show the number of servers and how to scale out a deployment.</p>
<p>Question 3) Active Directory support in Keystone. Is this being discussed within the Keystone working group?<br/>
Anne: It’s often discussed but no one has stepped up to write an AD plugin for Keystone yet that I know of.</p>
<p>Question 4) Is there a QEMU-based development environment for OpenStack?<br/>
Anne: Try out <a href="http://devstack.org">http://devstack.org </a>and if you run it in a VM, it’ll use QEMU.</p>
<p>Question 5) Can you give pointers to learning material?<br/>
Anne: Each of the projects has a development docs site (<a href="http://nova.openstack.org">nova.openstack.org</a>, <a href="http://glance.openstack.org">glance.openstack.org</a>, <a href="http://swift.openstack.org">swift.openstack.org</a>, and so on). You’ll find API and admin docs at <a href="http://docs.openstack.org">docs.openstack.org</a>.</p></div>
    </content>
    <updated>2012-02-07T15:49:13Z</updated>
    <category term="community"/>
    <category term="Event"/>
    <category term="Meetup"/>
    <category term="user groups"/>
    <author>
      <name>Anne Gentle</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.chmouel.com/?p=497</id>
    <link href="http://blog.chmouel.com/2012/02/06/anatomy-of-a-swift-put-query-to-object-server/" rel="alternate" type="text/html"/>
    <title>How does a PUT to a swift object server look like.</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I have been trying lately to get a better understanding of the Swift code base, and I found the best way to know it was to read it from top to bottom and document it along the way. Here is … <a href="http://blog.chmouel.com/2012/02/06/anatomy-of-a-swift-put-query-to-object-server/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I have been trying lately to get a better understanding of the Swift code base, and I found the best way to know it was to read it from top to bottom and document it along the way. Here is some of my notes, hopefully more will come.</p>
<p>I am starting with an object <strong>PUT</strong> when the request is coming from the proxy server. The request in the log-file will look like this :</p>
<p><em>“PUT /sdb1/2/AUTH_dcbeb7f1271d4374b951954a4f1be15f/foo/file.txt” 201 – “-” “txdw08eca2842e344bb8e11b5869c81cb52″ “-” 0.0308</em></p>
<p>The WSGI controller send the request to the method <a href="https://github.com/openstack/swift/blob/80a3cb556d1ea2b8ac284816096198b89a2cf117/swift/obj/server.py#L530">swift.obj.server.ObjectController-&gt;PUT</a> and start to do the following :</p>
<ul>
<li>splits the request.path to :</li>
</ul>
<p style="text-align: center;">device(<strong>sdb1</strong>), partition(<strong>2</strong>), account(<strong>AUTH_ACCOUNT_ID</strong>), container(<strong>foo</strong>), obj(<strong>file.txt</strong>)</p>
<ul>
<li>Make sure that partition is mounted. (<em>there is a <strong>mount_check</strong> option that can toggle this</em>).</li>
<li>Ensure that there is a X-Timestamp header which should be set by the proxy server.</li>
<li>Start the check method <a href="https://github.com/openstack/swift/blob/80a3cb556d1ea2b8ac284816096198b89a2cf117/swift/common/constraints.py#L85">check_object_creation</a> which does the following :</li>
</ul>
<ul>
<li>Make sure the <strong>content_length</strong> is not greater than the <strong>MAX_FILE_SIZE</strong>.</li>
<li>Make sure there is a <strong>content_length</strong> header (<em>except if the transfer has been chunked</em>).</li>
<li>Make sure that there is no <strong>content_length</strong> (ie: zero byte body) when doing a <strong>X-Copy-From</strong>.</li>
<li>Make sure the<strong> object_name</strong> is not greater than <strong>MAX_OBJECT_NAME_LENGTH</strong> (<em>1024 bytes by default</em>).</li>
<li>Making sure we have a <strong>Content-Type</strong> in the headers passed (this could be set by the user or auto-guessed via <a href="http://docs.python.org/library/mimetypes.html#mimetypes.guess_type">mimetypes.guess_type</a> on the proxy server).</li>
<li>When we have an header of <strong>x-object-manifest</strong> (<em>for large files support</em>) it makes sure the value is a container/object style and not contain chars like <strong>? &amp; /</strong> in the referenced objects names.</li>
<li>Checks metadata, make sure at first that the metadata name are not empty.</li>
<li>The metadata name length are not greater than <strong>MAX_META_NAME_LENGTH</strong> (<em>default: 128</em>).</li>
<li>The metadata value is not greater than <strong>MAX_META_VALUE_LENGTH</strong> (<em>default: 256</em>).</li>
<li>We don’t have a greater amount of metadatas than <strong>MAX_META_COUNT</strong> (<em>default: 90</em>).</li>
<li>The size of the headers combined (<em>name+value</em>) is not over <strong>MAX_META_OVERALL_SIZE</strong> (<em>default: 4096</em>).</li>
<li>If we have ‘<strong>X-Delete-At</strong>‘ (<em>for the object expiration feature</em>) we are making sure this is not happening in the past or we will exit with an <strong>HTTPBadRequest</strong>.</li>
<li>The class <a href="https://github.com/openstack/swift/blob/80a3cb556d1ea2b8ac284816096198b89a2cf117/swift/obj/server.py#L94">swift.obj.server.DiskFile</a> will be the class that takes care to actually write the file locally. It gets instantiated and do the following in the constructor method:</li>
<li>It will hash the following  value (<strong>account</strong>, <strong>container</strong>, <strong>obj)</strong> which will become hashed for our example into :</li>
</ul>
<p style="text-align: center;"><span style="font-size: small;"><span style="line-height: 24px;">46acec4563797178df9ec79b28146fe1</span></span></p>
<ul>
<li>It will get the path where this is going to be store which going to be :</li>
</ul>
<p style="text-align: center;"><span style="font-size: small;"><span style="line-height: 24px;">/srv/node/sdb1/objects/2/fe1/46acec4563797178df9ec79b28146fe1</span></span></p>
<ul>
<li><strong>/srv/node</strong> is the devices path which is the configuration directive <a href="https://github.com/openstack/swift/blob/master/etc/object-server.conf-sample#L8">[proxy]-&gt;devices</a> (<em>default to /srv/node</em>).</li>
<li><strong>sdb1</strong> being the mounted device name.</li>
<li>add the datadir type, ”<strong>objects</strong>” for us.</li>
<li>and the partition power (<strong>2</strong>)</li>
<li>last three chars of the hashed name (<strong>fe1</strong>)</li>
<li>the hash itself <strong>46acec4563797178df9ec79b28146fe1</strong></li>
<li>It will get the temporary directory which become in our case to: <strong>/srv/node/sdb1/tmp</strong> it is basically the devices dir, the device and /tmp</li>
<li>If the directory didn’t exists before then it just return.</li>
<li>If the directory was existing (already uploaded) then it will parse all files in there and would looks if we have :</li>
<li>Files ending up with .<strong><em>ts</em></strong>  which will be the tombstone (a deleted file).  NB: <em>Replication process will take care to os.unlink() the file properly later.</em></li>
<li>In case of a <em>POST</em> and if we have fast post setting enabled (see config <strong>object_post_as_copy</strong> in proxy_server) we will detect it and only do a copy of metadata.</li>
<li>It calculates the expiration time which is from now + the <strong>max_upload_time</strong> setting.</li>
<li>It start the etag hashing to gradually calculate the md5 of the object.</li>
<li> Using the method <strong>mkstemp</strong> of <strong>DiskFile</strong> it will start to write to tmpdir, which does the creation of the file like that :</li>
<li>Make sure to create the <em>tmpdir</em>.</li>
<li>make a secure temporary file (using <strong>mkstemp</strong>(3)) and yield the file descriptor back to <strong>PUT</strong>.</li>
<li>If there is a <strong>content-length</strong> in the headers (assigned by the client) it will use the posix function <strong><a href="http://linux.die.net/man/2/fallocate">fallocate</a></strong>(2) to pre-allocate that disk space to the file descriptor.</li>
<li>It will then iterate over chunk of data size defined by the configuration variable <strong>network_chunk_size</strong> (<em>default: 64m</em>) reading that chunk from the request <em>wsgi.input</em> :</li>
<li>It will update the <strong>upload_size </strong>value.</li>
<li>It will make sure we are not going over our upload expiration time (<em>or get back <strong>HTTPRequestTimeout</strong> HTTP Error</em>).</li>
<li>It will update the calculated md5 with that chunk.</li>
<li>It will write the chunk using python <a href="http://docs.python.org/library/os.html#os.write">os.write</a></li>
<li>For large file sync which is over the configuration variable <strong>bytes_per_sync</strong> it will do a <a href="http://linux.die.net/man/2/fdatasync">fdatasync</a>(2) and drop the kernel buffer caches (s<em>o we are not filling up too much the kernel memory</em>).</li>
<li>if we have a <strong>content-length</strong> in the client headers that doesn’t match the calculated <strong>upload_size</strong> we return a <strong><em>499 Client Disconnected</em></strong> as it means we had a problem somewhere during the upload.</li>
<li>It will bail out if we have a etag in the client headers that doesn’t match the calculated etag.</li>
</ul>
<p>And now we are starting defining our metadatas that we are going to store with the file  :</p>
<blockquote><p><em>metadata = {</em><br/>
<em>  ‘<strong>X-Timestamp’</strong>: </em>timestamp generated from the proxy_server<em>.</em><br/>
<em>  ‘<strong>Content-Type</strong>‘: d</em>efined by the user or ‘guessed’ by the proxy server<br/>
<em>  ‘<strong>ETag</strong>‘: </em>calculated value from the request.<br/>
<em>  ‘<strong>Content</strong>-<strong>Length</strong>‘: </em>an fstat(2) on the file to get the proper value of what is stored on the disk.<br/>
<em> }</em></p></blockquote>
<ul>
<li>It will add to the metadata every headers starting by <strong>‘x-object-meta-’.</strong></li>
<li>It will add to the metadata the allowed headers to be stored which is defined in the config variable<strong> allowed_headers</strong> (default: <em>allowed_headers = Content-Disposition, Content-Encoding, X-Delete-At, X-Object-Manifest</em>).</li>
<li>It will write the file using the put method of the DiskFile class, which finalise the writing on the file on disk and renames it from the temp file to the real location:</li>
<li>It will write the metadata using the <a href="https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xattr.1.html">xattr</a>(1) feature which is stored directly with the file.</li>
<li>If there is a <strong>Content-Length</strong> with the metada it will drop the kernel cache of that metadata length.</li>
<li>It will invalidate the hashes of the <strong>datadir</strong> directory using the function <a href="https://github.com/openstack/swift/blob/80a3cb556d1ea2b8ac284816096198b89a2cf117/swift/obj/replicator.py#L128">swift.obj.replicator.invalidate_hashes</a></li>
<li>It will set the hash of the dir as <strong>None</strong>, which would hint the replication process to have something to do with that dir (and that hash will be generated).</li>
<li>This file is stored by partition as python <a href="http://docs.python.org/library/pickle.html">pickle</a> which is in our case: <em>/srv/node/sdb1/objects/2/hashes.pkl</em></li>
<li>Move the file from the tmp dir to go to the <strong>datadir</strong>.</li>
<li>It will use the method <a href="https://github.com/openstack/swift/blob/master/swift/obj/server.py#L283">unlinkold</a> from <strong>DiskFile</strong> to remove any older versions of the object file which is any files that has older timestamp.</li>
<li>It will start construct the request to make to a containers by going passing the following:</li>
<li><strong>account</strong>, <strong>container</strong>, <strong>obj</strong> as request path.</li>
<li>the original headers.</li>
<li>the headers <strong>Content-Length</strong>, <strong>Content-Type</strong>, <strong>X-Timestamp</strong>, <strong>Etag</strong>, <strong>X-trans-ID</strong>.</li>
<li>It will get the headers <strong>X-Container-{Host,Partition,Device}</strong> from the original headers which is defined by the proxy to know on which container server it going to update. Every different PUT will have assigned a different container to each their own.</li>
<li>It will use the <a href="https://github.com/openstack/swift/blob/80a3cb556d1ea2b8ac284816096198b89a2cf117/swift/obj/server.py#L381">async_update</a> method (<em>by self since it’s part of the same class</em>) to make an asynchronous request:</li>
<li>Passing the aforementioned build headers and req.path.</li>
<li> If the request success (between <strong>200</strong> to <strong>300</strong>) it will return to the main (<strong>PUT</strong>) method.</li>
<li> the request didn’t succeed it will create a <strong>async_pending</strong> file locally in the tmp dir which is going to be picked-up by the replication process to update the container listing when the container is not too busy.</li>
<li>When finish it will respond by a <strong>HTTPCreated</strong></li>
</ul></div>
    </content>
    <updated>2012-02-06T10:00:33Z</updated>
    <category term="Openstack"/>
    <author>
      <name>chmouel</name>
    </author>
    <source>
      <id>http://blog.chmouel.com</id>
      <link href="http://blog.chmouel.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.chmouel.com" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle>Random and probably boring stuff.</subtitle>
      <title>Chmouel's Blog » Openstack</title>
      <updated>2012-02-06T10:20:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.stillhq.com/openstack/000004.html</id>
    <link href="http://www.stillhq.com/openstack/000004.html" rel="alternate" type="text/html"/>
    <title>Wow, qemu-img is fast</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I wanted to determine if its worth putting ephemeral images into the libvirt cache at all. How expensive are these images to create? They don't need to come from the image service, so it can't be too bad, right? It turns out that qemu-img is very very fast at creating these images, based on the very small data set of my laptop with an ext4 file system...

<br/><br/>

<ul><pre>mikal@x220:/data/temp$ time qemu-img create -f raw disk 10g
Formatting 'disk', fmt=raw size=10737418240 

real	0m0.315s
user	0m0.000s
sys	0m0.004s

mikal@x220:/data/temp$ time qemu-img create -f raw disk 100g
Formatting 'disk', fmt=raw size=107374182400 

real	0m0.004s
user	0m0.000s
sys	0m0.000s
</pre></ul>

<br/><br/>

Perhaps this is because I am using ext4, which does funky extents things when allocating blocks. However, the only ext3 file system I could find at my place is my off site backup disks, which are USB3 attached instead of the SATA2 that my laptop uses. Here's the number from there:

<br/><br/>

<ul><pre>$ time qemu-img create -f raw disk 100g
Formatting 'disk', fmt=raw size=107374182400 

real	0m0.055s
user	0m0.000s
sys	0m0.004s
</pre></ul>

<br/><br/>

So still very very fast. Perhaps its the mkfs that's slow? Here's a run of creating a ext4 file system inside that 100gb file I just made on my laptop:

<br/><br/>

<ul><pre>$ time mkfs.ext4 disk 
mke2fs 1.41.14 (22-Dec-2010)
disk is not a block special device.
Proceed anyway? (y,n) y
warning: Unable to get device geometry for disk
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

real	0m4.083s
user	0m0.096s
sys	0m0.136s
</pre></ul>

<br/><br/>

That time includes the time it took me to hit the 'y' key, as I couldn't immediately find a flag to stop prompting.

<br/><br/>

In conclusion, there is nothing slow here. I don't see why we'd want to cache ephemeral disks and use copy on write for them at all. Its very cheap to just create a new one each time, and it makes the code much simpler.

<br/><br/><i>Tags for this post: <a href="http://www.stillhq.com/tags/openstack.html">openstack</a> <a href="http://www.stillhq.com/tags/qemu.html">qemu</a> <a href="http://www.stillhq.com/tags/ephemeral.html">ephemeral</a> <a href="http://www.stillhq.com/tags/mkfs.html">mkfs</a> <a href="http://www.stillhq.com/tags/swap.html">swap</a> <a href="http://www.stillhq.com/tags/speed.html">speed</a> <a href="http://www.stillhq.com/tags/canonical.html">canonical</a></i><br/><i>Related posts: <a href="http://www.stillhq.com/openstack/000002.html">Further adventures with base images in OpenStack</a>; <a href="http://www.stillhq.com/openstack/000001.html">Openstack compute node cleanup</a>; <a href="http://www.stillhq.com/diary/001118.html">Taking over a launch pad project</a>; <a href="http://www.stillhq.com/link/000068.html">Speed limit</a>; <a href="http://www.stillhq.com/openstack/000003.html">Slow git review uploads?</a>; <a href="http://www.stillhq.com/linux/000038.html">My machine was thrashing a lot</a>; <a href="http://www.stillhq.com/link/000142.html">Large inodes = faster samba</a>; <a href="http://www.stillhq.com/conference/lca2013/000002.html">Are you in a LUG? Do you want some promotional materials for LCA 2013?</a>; <a href="http://www.stillhq.com/conference/lca2013/000003.html">Announcement video</a>; <a href="http://www.stillhq.com/conference/lca2013/000001.html">linux.conf.au Returns to Canberra in 2013</a>; <a href="http://www.stillhq.com/work/000019.html">The next thing</a>; <a href="http://www.stillhq.com/linux/000049.html">Linux USB quandary</a></i>

<br/><br/>
<a href="http://www.stillhq.com/openstack/000004.commentform.html">Comment</a></div>
    </summary>
    <updated>2012-02-04T01:16:00Z</updated>
    <source>
      <id>http://www.stillhq.com</id>
      <author>
        <name>Michael Still</name>
      </author>
      <link href="http://www.stillhq.com" rel="alternate" type="text/html"/>
      <link href="http://www.stillhq.com/openstack/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>The life, times, travel and software of Michael Still</subtitle>
      <title>stillhq.com : Mikal, a geek from Canberra living in Silicon Valley</title>
      <updated>2012-02-22T08:55:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.stillhq.com/openstack/000003.html</id>
    <link href="http://www.stillhq.com/openstack/000003.html" rel="alternate" type="text/html"/>
    <title>Slow git review uploads?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">jeblair was kind enough to help me debug my problem with slow "git review" uploads for Openstack projects just now. It turns out that part of my standard configuration for ssh is to enable ControlMaster and ControlPersist. I mostly do this because the machines I use at Canonical are a very long way away from my home in Australia, and its nice to have slightly faster connections when you ssh to a machine. However, gerrit is incompatible with these options as best as we can tell.

<br/><br/>

So, if your git reviews are taking 10 to 20 minutes to upload like mine were, check that you're not using persistent connections. Excluding review.openstack.org from that part of my configuration has made a massive difference to the speed of uploads for me.

<br/><br/><i>Tags for this post: <a href="http://www.stillhq.com/tags/openstack.html">openstack</a> <a href="http://www.stillhq.com/tags/git.html">git</a> <a href="http://www.stillhq.com/tags/review.html">review</a> <a href="http://www.stillhq.com/tags/gerrit.html">gerrit</a> <a href="http://www.stillhq.com/tags/ssh.html">ssh</a> <a href="http://www.stillhq.com/tags/canonical.html">canonical</a></i><br/><i>Related posts: <a href="http://www.stillhq.com/mythtv/book/000008.html">More reviews</a>; <a href="http://www.stillhq.com/imagemagick/book/000019.html">Book reviews</a>; <a href="http://www.stillhq.com/diary/001118.html">Taking over a launch pad project</a>; <a href="http://www.stillhq.com/imagemagick/book/000008.html">Working on review comments for Chapters 2, 3 and 4 tonight</a>; <a href="http://www.stillhq.com/linux/000053.html">A ssh quickie</a>; <a href="http://www.stillhq.com/mythtv/book/000007.html">Review</a>; <a href="http://www.stillhq.com/diary/000754.html">Andrew's SSH filtering causes me pain</a>; <a href="http://www.stillhq.com/openstack/000002.html">Further adventures with base images in OpenStack</a>; <a href="http://www.stillhq.com/python/twisted/000002.html">Twisted conch</a>; <a href="http://www.stillhq.com/travel/usa/california/sunnyvale/000001.html">The Wild Palms Hotel</a>; <a href="http://www.stillhq.com/openstack/000004.html">Wow, qemu-img is fast</a>; <a href="http://www.stillhq.com/imagemagick/book/000013.html">Status of the book</a>; <a href="http://www.stillhq.com/conference/lca2013/000002.html">Are you in a LUG? Do you want some promotional materials for LCA 2013?</a>; <a href="http://www.stillhq.com/conference/lca2013/000003.html">Announcement video</a>; <a href="http://www.stillhq.com/conference/lca2013/000001.html">linux.conf.au Returns to Canberra in 2013</a>; <a href="http://www.stillhq.com/work/000019.html">The next thing</a>; <a href="http://www.stillhq.com/clusterssh/00001.html">clusterssh</a>; <a href="http://www.stillhq.com/openstack/000001.html">Openstack compute node cleanup</a></i>

<br/><br/>
<a href="http://www.stillhq.com/openstack/000003.commentform.html">Comment</a></div>
    </summary>
    <updated>2012-02-03T00:53:00Z</updated>
    <source>
      <id>http://www.stillhq.com</id>
      <author>
        <name>Michael Still</name>
      </author>
      <link href="http://www.stillhq.com" rel="alternate" type="text/html"/>
      <link href="http://www.stillhq.com/openstack/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>The life, times, travel and software of Michael Still</subtitle>
      <title>stillhq.com : Mikal, a geek from Canberra living in Silicon Valley</title>
      <updated>2012-02-22T08:55:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=856</id>
    <link href="http://fnords.wordpress.com/2012/02/01/about-collaboration/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/01/about-collaboration/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/02/01/about-collaboration/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">About collaboration</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">In recent years, as open source becomes more ubiquitous, I’ve seen a new breed of participants appearing. They push their code to GitHub like you would wear a very visible good behavior marketing badge. They copy code from multiple open source projects, modify it, but don’t contribute back their changes to upstream. They seem to [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=856&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In recent years, as open source becomes more ubiquitous, I’ve seen a new breed of participants appearing. They push their code to GitHub like you would wear a very visible good behavior marketing badge. They copy code from multiple open source projects, modify it, but don’t contribute back their changes to upstream. They seem to consider open source as a trendy all-you-can-eat buffet combined with a cool marketing gimmick.</p>
<p>In my opinion, this is not what open source is about. I see open source, and more generally open innovation (which adds open design, open development and open community), as a solution for the future. The world is facing economical and ecological limits: it needs to stop designing for obsolescence, produce smarter, reduce duplication of effort, and fix the rift between consumers and producers. Open innovation encourages synergy and collaboration. It reduces waste. It enables consumers to be producers again. That’s a noble goal, but without convergence, we can’t succeed.</p>
<p>The behavior of these new participants goes against that. I call this the GitHub effect: you encourage access to the code, forking and fragmentation, while you should encourage convergence and collaboration on a key repository. And like having a “packaging made from recyclable materials” sign on your product doesn’t make it environment-friendly, just publishing your own code somewhere under an open source license doesn’t really make it open.</p>
<p>On the extreme fringe of that movement, we also see the line with closed source blurring. Building your own closed product on top of open source technology, and/or abusing the word “Open” to imply that all you do is open source, using the uncertainty to reap easy marketing benefits. I’ve even seen a currently-closed-source project being featured as an open source project to watch in 2012. We probably need to start playing harder, denounce fake participants and celebrate good ones.</p>
<p>Some people tell me my view goes against making money with open source. That might be true for easy, short-term money. But I don’t think you need to abuse open source to make money out of it. The long-term benefits of open innovation are obvious, and like for green businesses, good behavior and long-term profit go well together. Let’s all make sure we encourage collaboration and promote the good behavior, and hopefully we’ll fix this.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/856/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/856/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/856/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=856&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-02-01T17:38:59Z</updated>
    <published>2012-02-01T17:38:59Z</published>
    <category scheme="http://fnords.wordpress.com" term="Open source"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.chmouel.com/?p=493</id>
    <link href="http://blog.chmouel.com/2012/02/01/audit-a-swift-cluster/" rel="alternate" type="text/html"/>
    <title>Audit a swift cluster</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Swift integrity tools. There is quite a bit of tools shipped with Swift to ensure you have the right object on your cluster. At first there is the basic : swift-object-info It will take a swift object stored on the … <a href="http://blog.chmouel.com/2012/02/01/audit-a-swift-cluster/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Swift integrity tools.</p>
<p>There is quite a bit of tools shipped with Swift to ensure you have the right object on your cluster.</p>
<p>At first there is the basic :</p>
<p><strong>swift-object-info</strong></p>
<p>It will take a swift object stored on the filesystem and print some infos about it, like this :</p>
<blockquote><p>swift@storage01:0/016/0b221bab535ac1b8f0d91e394f225016$ swift-object-info 1327991417.01411.data<br/>
Path: /AUTH_root/foobar/file.txt<br/>
Account: AUTH_root<br/>
Container: foobar<br/>
Object: file.txt<br/>
Object hash: 0b221bab535ac1b8f0d91e394f225016<br/>
Ring locations:<br/>
192.168.254.12:6000 – /srv/node/sdb1/objects/0/016/0b221bab535ac1b8f0d91e394f225016/1327991417.01411.data<br/>
Content-Type: text/plain<br/>
Timestamp: 2012-01-31 06:30:17.014110 (1327991417.01411)<br/>
ETag: 053a0f8516a5023b9af76c49ca917d3e (valid)<br/>
Content-Length: 24 (valid)<br/>
User Metadata: {‘X-Object-Meta-Mtime’: ’1327968327.21′}</p></blockquote>
<p>PS: If you don’t know where is your object on which node, you can you use swift-get-nodes</p>
<p>For auditing, the Etag value is important because swift-object-info will compare the object recorded etag in the metadata with what we have on the disks. Let’s try to see if that works :</p>
<blockquote><p>swift@storage01:0/016/0b221bab535ac1b8f0d91e394f225016$ cp 1327991417.01411.data /tmp<br/>
swift@storage01:0/016/0b221bab535ac1b8f0d91e394f225016$ echo “foo” &gt;&gt; 1327991417.01411.data<br/>
swift@storage01:0/016/0b221bab535ac1b8f0d91e394f225016$ swift-object-info 1327991417.01411.data|grep ‘^Etag’<br/>
Etag: 053a0f8516a5023b9af76c49ca917d3e doesn’t match file hash of 9ff871e5ce5dcb5d3f2680a80a88ff38!</p></blockquote>
<p>swift-object-info has detected that this file is not the one we have uploaded.</p>
<p>There is an other tool called <strong>swift-drive-audit</strong> which as explained in the <a href="http://swift.openstack.org/admin_guide.html" title="Admin Guide">admin guide</a> will parse the <em>/var/log/kern.log</em> and have predefined regexp  to detect disk failure notified by the kernel. It is usually run periodically by cron and there is a config file for it called <em><a href="https://github.com/openstack/swift/blob/master/etc/drive-audit.conf-sample">/etc/swift/drive-audit.conf.</a></em> If the script find any errors for a certain drive it will unmount it and comment it in /etc/fstab(5). Afterwards  the replication process will pick it up from other replicas and put the object on that drive in <em>handover</em>.</p>
<p>Swift provide as well different type of auditor daemons for account/container/object :</p>
<ul>
<li> swift-account-auditor</li>
<li> swift-container-auditor</li>
<li> swift-object-auditor</li>
</ul>
<p><strong>swift-account-auditor</strong> will open all sqlite db of an account server and launch a SQL query to make sure all the dbs are valid.<br/>
<strong>swift-container-auditor</strong> will do the same but for containers.<br/>
<strong>swift-object-auditor</strong> will open all object of an object server and make sure of :</p>
<ul>
<li>Metadata are correct.</li>
<li>We have the proper size.</li>
<li>We have the proper MD5.</li>
</ul>
<p>Those auditors needs to be set in each type-server.conf, for example for account server you will add something like this to /etc/swift/account-server.conf :</p>
<blockquote><p>[account-auditor]<br/>
# You can override the default log routing for this app here (don’t use set!):<br/>
# log_name = account-auditor<br/>
# log_facility = LOG_LOCAL0<br/>
# log_level = INFO<br/>
# Will audit, at most, 1 account per device per interval<br/>
interval = 1800<br/>
# log_facility = LOG_LOCAL0<br/>
# log_level = INFO</p></blockquote>
<p>For container this is about the same options but for object-server does are the options :</p>
<blockquote><p>[object-auditor]<br/>
# You can override the default log routing for this app here (don’t use set!):<br/>
# log_name = object-auditor<br/>
# log_facility = LOG_LOCAL0<br/>
# log_level = INFO<br/>
# files_per_second = 20<br/>
# bytes_per_second = 10000000<br/>
# log_time = 3600<br/>
# zero_byte_files_per_second = 50</p></blockquote>
<p>Another tool shipped with swift is <strong>swift-account-audit</strong> which will audit a full account and report if there is missing replicas or incorrect object in that account.</p></div>
    </content>
    <updated>2012-02-01T10:18:11Z</updated>
    <category term="Openstack"/>
    <author>
      <name>chmouel</name>
    </author>
    <source>
      <id>http://blog.chmouel.com</id>
      <link href="http://blog.chmouel.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.chmouel.com" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle>Random and probably boring stuff.</subtitle>
      <title>Chmouel's Blog » Openstack</title>
      <updated>2012-02-06T10:20:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1853</id>
    <link href="http://www.openstack.org/blog/2012/01/openstack-design-summit-conference-updates/" rel="alternate" type="text/html"/>
    <title>OpenStack Design Summit &amp; Conference Updates</title>
    <summary>We’re making progress on the next OpenStack Design Summit (April 16-18) &amp; Conference (April 19-20) at the Hyatt Regency San Francisco — one week, two events. Hotel Rooms We have a discounted hotel room block at the Hyatt under OpenStack, which is now available to book. Please make sure to designate yourself with the OpenStack [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We’re making progress on the next OpenStack Design Summit (April 16-18) &amp; Conference (April 19-20) at the Hyatt Regency San Francisco — one week, two events. </p>
<p><strong>Hotel Rooms<br/>
</strong>We have a discounted hotel room block at the Hyatt under OpenStack, which is now available to <a href="https://resweb.passkey.com/go/DRAC2012" target="_blank" title="book">book</a>.  Please make sure to designate yourself with the OpenStack Design Summit &amp; Conference when booking.  </p>
<p><strong>Sponsorship Prospectus</strong><br/>
Sponsorships are going fast, and the prospectus is available to download at the <a href="http://www.openstack.org/conference/san-francisco-2012/" target="_blank" title="Conference website">Conference website</a>. There are a limited number of opportunities at the top levels, which are first come, first serve, with a signed agreement. If you have any questions about the prospectus, please contact sponsors@openstack.org.</p>
<p><strong>Speakers &amp; OpenStack Demo Session<br/>
</strong>We’ve also opened the OpenStack Conference <a href="http://www.openstack.org/conference/san-francisco-2012/speakers" target="_blank" title="call for speakers">call for speakers</a>. We need your help to build out an informative and compelling agenda, including user stories, technical advancements, best practices and visions on the future of OpenStack. New to this Conference, we are also planning an OpenStack demo session, a chance for companies building products around OpenStack to present in front of the community and a panel of judges. The deadline to submit speaking sessions is February 15, and more details and deadlines for the OpenStack demo session will be announced shortly.</p>
<p>As a reminder, the OpenStack Design Summit is made up of working sessions for developers contributing to OpenStack. The OpenStack Conference reaches a broader audience, including users and the business ecosystem, in addition to the OpenStack technical community. Because the events are co-located, the sponsorship prospectus and hotel room block cover both events, but the call for papers is strictly for the OpenStack Conference.  The Design Summit sessions and schedule will be determined by blueprint submissions, the Project Technical Leads and Release Manager.</p>
<p>We encourage you to make travel arrangements for the April events, and registration will open shortly. Look forward to seeing everyone in San Francisco!</p></div>
    </content>
    <updated>2012-01-30T22:25:20Z</updated>
    <category term="community"/>
    <category term="Event"/>
    <author>
      <name>laurensell</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-19T15:25:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1877</id>
    <link href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-20-27/" rel="alternate" type="text/html"/>
    <title>Community Weekly Review (Jan 20-27)</title>
    <summary>OpenStack Community Newsletter –January 27, 2012 HIGHLIGHTS OpenStack Bug Squashing Day Is Coming On Feb 2nd http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/ and you can follow its evolution on http://wiki.openstack.org/bugstats/ Meet OpenStack developers at FOSDEM http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/ OpenStack Jenkins dashboard available for testing Ubuntu snapshots http://www.openstack.org/blog/2012/01/openstack-jenkins-dashboard-available-for-testing-ubuntu-snapshots/ GrydDynamics team contributed a billing plugin for Horizon https://openstackgd.wordpress.com/2012/01/24/billing-plugin-for-horizon OpenStack Australian community had another successful meetup [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>OpenStack Community Newsletter –January 27, 2012<br/>
</strong></p>
<p><strong>HIGHLIGHTS</strong></p>
<ul>
<li>OpenStack Bug Squashing Day Is Coming On Feb 2nd <a href="http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/">http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/</a> and you can follow its evolution on <a href="http://wiki.openstack.org/bugstats/">http://wiki.openstack.org/bugstats/</a></li>
<li>Meet OpenStack developers at FOSDEM <a href="http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/">http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/</a></li>
<li>OpenStack Jenkins dashboard available for testing Ubuntu snapshots <a href="http://www.openstack.org/blog/2012/01/openstack-jenkins-dashboard-available-for-testing-ubuntu-snapshots/">http://www.openstack.org/blog/2012/01/openstack-jenkins-dashboard-available-for-testing-ubuntu-snapshots/</a></li>
<li>GrydDynamics team contributed a billing plugin for Horizon <a href="https://openstackgd.wordpress.com/2012/01/24/billing-plugin-for-horizon/">https://openstackgd.wordpress.com/2012/01/24/billing-plugin-for-horizon</a></li>
<li>OpenStack Australian community had another successful meetup <a href="http://www.openstack.org/blog/2012/01/openstack-melbourne-australia-meetup-jan-17/">http://www.openstack.org/blog/2012/01/openstack-melbourne-australia-meetup-jan-17/</a></li>
<li>Opened the Call for speaker for OpenStack Conference <a href="http://www.openstack.org/conference/san-francisco-2012/speakers/">http://www.openstack.org/conference/san-francisco-2012/speakers/</a></li>
<li>Book your room for the week <a href="https://resweb.passkey.com/go/DRAC2012">https://resweb.passkey.com/go/DRAC2012</a></li>
</ul>
<p><strong>EVENTS</strong></p>
<ul>
<li>
<div>FOSDEM 2012 Feb 04 – 05, 2012 – Bruxelles, BE <a href="http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom">http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom</a></div>
</li>
<li>
<div>OpenStack Bug Squash Day San Francisco Feb 02, 2012 – Rackspace San Francisco, 620 Folsom, San Francisco, CA <a href="http://www.meetup.com/openstack/events/48362422/">http://www.meetup.com/openstack/events/48362422/</a></div>
</li>
<li>
<div>OpenStack Bug Squash Day Austin Feb 02, 2012 – Rackspace Austin 2420 Ridgepoint Dr, Austin, TX <a href="http://www.meetup.com/OpenStack-Austin/events/48406252/">http://www.meetup.com/OpenStack-Austin/events/48406252/</a></div>
</li>
<li>“Ceph Lords” San Francisco Stackers Free Event! Feb 02, 2012 – DreamHost San Francisco, 221 Pine St [2nd Floor] <a href="http://www.meetup.com/openstack/events/48829962/">http://www.meetup.com/openstack/events/48829962/</a></li>
<li>
<div>Inaugural OpenStack DC Meetup Feb 16, 2012 – Washington, DC <a href="http://www.meetup.com/OpenStackDC/events/47106902/" target="_blank">http://www.meetup.com/OpenStackDC/events/47106902/</a></div>
</li>
<li>
<div>FLOSSTalk Kosovo Feb 22, 2012 – UNICEF Innovations Lab Kosovo in Prishtina, Kosovo <a href="http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack" target="_blank">http://www.flossk.org/en/blog/flosstalk-arturo-suarez-openstack</a></div>
</li>
<li>
<div>OpenStack Spring 2012 Design Summit Apr 16 – 18 and Conference Apr 19-20 – San Francisco, California <a href="http://www.openstack.org/conference/" target="_blank">http://openstack.org/conference/</a></div>
</li>
</ul>
<p><strong>OTHER NEWS</strong></p>
<ul>
<li>Three  (and more) things about documentation <a href="https://lists.launchpad.net/openstack/msg07082.html">https://lists.launchpad.net/openstack/msg07082.html</a></li>
<li>Cleaning up code after Essex feature-freeze <a href="https://lists.launchpad.net/openstack/msg07065.html">https://lists.launchpad.net/openstack/msg07065.html</a></li>
<li>Announcing a new and improved Keystone <a href="https://lists.launchpad.net/openstack/msg07063.html">https://lists.launchpad.net/openstack/msg07063.html</a></li>
<li>Ubuntu package / ppa for the git-review tool <a href="https://lists.launchpad.net/openstack/msg07061.html">https://lists.launchpad.net/openstack/msg07061.html</a></li>
<li>Essex-3 milestone available for Keystone, Glance, Nova and Horizon <a href="https://lists.launchpad.net/openstack/msg06989.html">https://lists.launchpad.net/openstack/msg06989.html</a></li>
<li>Nexenta SAN volume driver for Nova <a href="https://lists.launchpad.net/openstack/msg06961.html">https://lists.launchpad.net/openstack/msg06961.html</a></li>
<li>OpenStack Wiki Recent Changes – <a href="http://wiki.openstack.org/RecentChanges">http://wiki.openstack.org/RecentChanges</a></li>
<ul>
<li>MultiRealm Keystone <a href="http://wiki.openstack.org/MultiRealmKeystone">http://wiki.openstack.org/MultiRealmKeystone</a></li>
<li>Smokestack <a href="http://wiki.openstack.org/smokestack">http://wiki.openstack.org/smokestack</a></li>
<li>OpenStack Design Summit <a href="http://wiki.openstack.org/Summit">http://wiki.openstack.org/Summit</a></li>
</ul>
<li>Project meeting summary <a href="http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-24-21.01.html">http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-24-21.01.html</a></li>
</ul>
<p><strong>COMMUNITY STATISTICS</strong></p>
<ul>
<li><strong/>We’re working to improve the community stats. We hope to be back next week.</li>
</ul>
<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>This weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</p></div>
    </content>
    <updated>2012-01-27T21:30:06Z</updated>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-16T15:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=850</id>
    <link href="http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/27/openstack-developers-meeting-at-fosdem/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">OpenStack developers meeting at FOSDEM</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Next week, the European free and open source software developers will converge to Brussels for FOSDEM. We took this opportunity to apply for an OpenStack developers gathering in the Virtualization and Cloud devroom. At 6pm on Saturday (last session of the day), in the Chavanne room, we will have a one-hour town hall meeting. If [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=850&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Next week, the European free and open source software developers will converge to Brussels for <a href="http://fosdem.org/2012/" target="_blank">FOSDEM</a>. We took this opportunity to apply for an OpenStack developers gathering in the <a href="http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom" target="_blank">Virtualization and Cloud</a> devroom.</p>
<p>At 6pm on Saturday (last session of the day), in the Chavanne room, we will have a one-hour town hall meeting. If you’re an existing OpenStack contributor, a developer considering to join us, an upstream project developer, a downstream distribution packager, or just curious about OpenStack, you’re welcome to join us ! I’ll be there, Stefano Maffulli (our community manager) will be there, and several OpenStack core developers will be there.</p>
<p>We’ll openly discuss issues and solutions about integration with upstream projects, packaging, governance, development processes, community or release cycles. In particular, we’ll have a distribution panel where every OpenStack distribution will be able to explain how they support OpenStack and discuss what we can improve to make things better for them.</p>
<p>And at the end of the session we can informally continue the discussion around fine Belgian beers or their famous <a href="http://en.wikipedia.org/wiki/Carbonade_flamande" target="_blank">Carbonade</a> !</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/850/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/850/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/850/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=850&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-27T15:54:28Z</updated>
    <published>2012-01-27T15:54:28Z</published>
    <category scheme="http://fnords.wordpress.com" term="Cloud"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1862</id>
    <link href="http://www.openstack.org/blog/2012/01/openstack-jenkins-dashboard-available-for-testing-ubuntu-snapshots/" rel="alternate" type="text/html"/>
    <title>OpenStack Jenkins dashboard available for testing Ubuntu snapshots</title>
    <summary>The keener eyed of you may have noticed: https://jenkins.qa.ubuntu.com/view/Precise%20OpenStack%20Testing/ James Page has setup the jobs in the Ubuntu OpenStack QA Lab to start publishing to the public Jenkins QA instance this morning. We now have automated build testing of all core OpenStack components triggered from upstream trunk commits. This is followed by automated deployment (-deploy) [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The keener eyed of you may have noticed:</p>
<p><a href="https://jenkins.qa.ubuntu.com/view/Precise%20OpenStack%20Testing/">https://jenkins.qa.ubuntu.com/view/Precise%20OpenStack%20Testing/</a></p>
<p>James Page has setup the jobs in the Ubuntu OpenStack QA Lab to start publishing to the public Jenkins QA instance this morning. We now have automated build testing of all core OpenStack components triggered from upstream trunk commits. This is followed by automated deployment (-deploy) of OpenStack in the lab with a serving of testing (-test) once its all up and running.</p>
<p>Credit to Adam Gandelman for the Juju charm work, deployment framework and test execution and to Chuck Short for the hugely misnamed tarball.sh script which completes the git/bzr/packaging fu to build and deploy OpenStack packages!</p>
<p>The plan is to get the upstream Tempest test suite running in the lab; at the moment we are running a more limited test script just to ensure that you can spin up and instance and see it on the network.</p>
<p>(Crossposted from <a href="http://cloud.ubuntu.com/2012/01/openstack-jenkins-dashboard-available-for-testing/">cloud.ubuntu.com</a>)</p></div>
    </content>
    <updated>2012-01-27T13:50:36Z</updated>
    <category term="Development"/>
    <category term="OpenStack"/>
    <category term="ubuntu"/>
    <author>
      <name>canonical</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-15T09:50:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=251</id>
    <link href="https://openstackgd.wordpress.com/2012/01/24/billing-plugin-for-horizon/" rel="alternate" type="text/html"/>
    <title>Billing plugin for Horizon</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Now nova-billing has a Django-based web interface – horizon-billing (https://github.com/griddynamics/horizon-billing). horizon-billing is packaged to a homonymous RPM (path for RHEL: http://yum.griddynamics.net/yum/diablo/, for CentOS: http://yum.griddynamics.net/yum/diablo-centos/). To enable it in dashboard, install the horizon_billing package and turn it on in /etc/openstack-dashboard/local/local_settings.py: add … <a href="https://openstackgd.wordpress.com/2012/01/24/billing-plugin-for-horizon/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=251&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Now nova-billing has a Django-based web interface – horizon-billing (https://github.com/griddynamics/horizon-billing).</p>
<p>horizon-billing is packaged to a homonymous RPM (path for RHEL: http://yum.griddynamics.net/yum/diablo/, for CentOS: http://yum.griddynamics.net/yum/diablo-centos/).</p>
<p>To enable it in dashboard, install the horizon_billing package and turn it<br/>
on in /etc/openstack-dashboard/local/local_settings.py:</p>
<ul>
<li>add ‘horizon_billing’ to INSTALLED_APPS tuple;</li>
<li>add ‘billing’ to ‘dashboards’ key in HORIZON_CONFIG.</li>
</ul>
<p>After installation, a new “Billing” panel is added after “Project” and “Admin”.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/251/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/251/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/251/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=251&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-24T11:38:06Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>aababilov</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=247</id>
    <link href="https://openstackgd.wordpress.com/2012/01/24/grid-dynamics-github-repos-are-renamed/" rel="alternate" type="text/html"/>
    <title>Grid Dynamics’ GitHub repos are renamed</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">In order to unify our repo names with openstack GitHub origanization, “osc-robot-” prefix is removed. So, these repos are renamed: osc-robot-keystone; osc-robot-nova; osc-robot-openstackx; osc-robot-glance; osc-robot-swift; osc-robot-openstack-compute; osc-robot-noVNC; osc-robot-python-novaclient. Also, we add python-keystoneclient repo (forked from openstack/python-keystoneclient) that contains patches for … <a href="https://openstackgd.wordpress.com/2012/01/24/grid-dynamics-github-repos-are-renamed/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=247&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>In order to unify our repo names with openstack GitHub origanization, “osc-robot-” prefix is removed.</p>
<p>So, these repos are renamed:</p>
<ul>
<li>osc-robot-keystone;</li>
<li>osc-robot-nova;</li>
<li>osc-robot-openstackx;</li>
<li>osc-robot-glance;</li>
<li>osc-robot-swift;</li>
<li>osc-robot-openstack-compute;</li>
<li>osc-robot-noVNC;</li>
<li>osc-robot-python-novaclient.</li>
</ul>
<p>Also, we add python-keystoneclient repo (forked from openstack/python-keystoneclient) that contains patches for RedHat packaging.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/247/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/247/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/247/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=247&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-24T11:27:03Z</updated>
    <category term="Uncategorized"/>
    <category term="OpenStack"/>
    <category term="rhel"/>
    <author>
      <name>aababilov</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=400</id>
    <link href="http://www.joinfu.com/2012/01/looking-for-a-few-good-engineers/" rel="alternate" type="text/html"/>
    <title>Looking for a Few Good Engineers</title>
    <summary>Do you know Python? Do you get a thrill breaking other people’s code? Do you have experience with Chef, Puppet, Cobbler, Orchestra, or Jenkins? Have you ever deployed or worked on highly distributed systems? Do you understand virtualization technologies like KVM, Xen, ESX or Hyper-V? If you answered “Yes!” to any of the questions above [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Do you know Python? Do you get a thrill breaking other people’s code? Do you have experience with Chef, Puppet, Cobbler, Orchestra, or Jenkins? Have you ever deployed or worked on highly distributed systems? Do you understand virtualization technologies like KVM, Xen, ESX or Hyper-V?
</p>
<p>
If you answered “<em>Yes!</em>” to <em><strong>any</strong></em> of the questions above <em><strong>and</strong></em> are interested in working in a distributed, high-energy engineering team on solving complex problems with cloud infrastructure software, I want to hear from you. Experience with <a href="http://openstack.org" title="OpenStack">OpenStack</a> is a huge plus.
</p>
<p>
I’m looking for <strong>QA software engineers</strong>, <strong>software deployment and/or automation engineers</strong> and <strong>software developers</strong> that can hit the ground running and make a big impact from Day One. Feel free to email me at <code>REVERSE('moc.liamg@sepipyaj')</code>.</p></div>
    </content>
    <updated>2012-01-23T20:21:51Z</updated>
    <category term="openstack"/>
    <category term="Python"/>
    <category term="Testing"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1836</id>
    <link href="http://www.openstack.org/blog/2012/01/openstack-melbourne-australia-meetup-jan-17/" rel="alternate" type="text/html"/>
    <title>OpenStack Melbourne Australia Meetup Jan 17</title>
    <summary>On Tuesday January 17 at the Exchange Hotel in Melbourne the inaugural Australian OpenStack Users Group meetup Part 2 took place. This followed up on the Sydney event last month and took the same format, being a casual informal get together for some drinks and conversation focused on OpenStack. We kicked off around 6pm and [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://aosug.openstack.org.au/"><img alt="Openstack Melbourne Australia Meetup January 17 2012" class="alignright size-full wp-image-1847" height="173" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/small1.jpg" width="409"/></a>On Tuesday January 17 at the Exchange Hotel in Melbourne the inaugural Australian OpenStack Users Group meetup Part 2 took place. This followed up on the Sydney event last month and took the same format, being a casual informal get together for some drinks and conversation focused on OpenStack. We kicked off around 6pm and had an attendance of around 45 OzStackers. Many many thanks to everyone that came along!</p>
<p>Once again we had our attending vendors present a short overview of their company’s involvement in the project. The speakers were Mark Randall, <a href="http://www.rackspace.com.au/" target="_blank">Rackspace</a> Country Manager for AU/NZ, <a href="https://twitter.com/#!/dpendonthecloud" target="_blank">Daniel Pendlebury</a>, <a href="http://community.citrix.com/display/cloud/OpenStack" target="_blank">Citrix</a> Lead Systems Engineer for Datacenter and Cloud, Gavin Coulthard, Manager – Field Systems Engineering A/NZ at <a href="http://www.f5.com" target="_blank">F5</a>, Peter Jung, Cloud Solutions Architect at <a href="http://dell.com/openstack" target="_blank">Dell</a>, and Andrew White, Data Centre Architect from <a href="http://blogs.cisco.com/datacenter/cisco-and-openstack/" target="_blank">Cisco</a>. Following the vendors, an awesome contribution to the evening came from <a href="http://nectar.org.au/news/nectar-travels-us-collaborate-cloud-technology" target="_blank" title="NeCTAR">Dr Steven Manos</a>, ITS Research Director from the University of Melbourne, who presented an overview of the <a href="http://nectar.org.au/" target="_blank" title="NeCTAR">NeCTAR</a> project. Rounding out the talks again was Phil Rogers from <a href="http://aptira.com/" target="_blank">Aptira</a>.</p>
<p>Again as in Sydney, there was a great sense of community, lots of smiles and laughter and much conversation and enthusiasm to share information and experiences. As social events go, both this and the Sydney events have been very successful, the next round of meetups scheduled for early March will see us presenting a more structured meetup schedule with a focus on technical, with demos and the like.</p>
<p>Head to <a href="http://aosug.openstack.org.au/" target="_blank" title="AOSUG">our Australian Meetup group</a> to get involved, or join the <a href="http://groups.google.com/group/openstack-au" target="_blank" title="Openstack-AU">AU Google group</a>.</p>
<p> </p></div>
    </content>
    <updated>2012-01-22T11:39:32Z</updated>
    <category term="Event"/>
    <category term="Meetup"/>
    <category term="Aptira"/>
    <category term="cisco"/>
    <category term="Citrix"/>
    <category term="dell"/>
    <category term="F5"/>
    <category term="NeCTAR"/>
    <category term="Rackspace"/>
    <author>
      <name>Tristan Goode</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-13T07:00:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1842</id>
    <link href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-13-20/" rel="alternate" type="text/html"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" length="113102190" rel="enclosure" type="audio/ogg"/>
    <title>Community Weekly Review (Jan 13 – 20)</title>
    <summary>OpenStack Community Newsletter –January 20, 2012 HIGHLIGHTS The First OpenStack Bug Squashing Day Is Coming On Feb 2nd http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/ Making more solid OpenStack releases http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/ Performance testing tool for Glance https://lists.launchpad.net/openstack/msg06724.html OpenStack Nova and Glance 2011.3.1 released https://lists.launchpad.net/openstack/msg06834.html GridDynamics released “nova-billing”, resource usage accounting system for OpenStack http://openstackgd.wordpress.com/2012/01/19/resource-usage-accounting-system-for-openstack/ Dan Prince and Russell Bryant giving an [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>OpenStack Community Newsletter –January 20, 2012<br/>
</strong></p>
<p><strong>HIGHLIGHTS</strong></p>
<ul>
<li>The First OpenStack Bug Squashing Day Is Coming On Feb 2nd <a href="http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/">http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/</a></li>
<li>Making more solid OpenStack releases <a href="http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/">http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/</a></li>
<li>Performance testing tool for Glance <a href="https://lists.launchpad.net/openstack/msg06724.html">https://lists.launchpad.net/openstack/msg06724.html</a></li>
<li>OpenStack Nova and Glance 2011.3.1 released <a href="https://lists.launchpad.net/openstack/msg06834.html">https://lists.launchpad.net/openstack/msg06834.html</a></li>
<li>GridDynamics released “nova-billing”, resource usage accounting system for OpenStack <a href="http://openstackgd.wordpress.com/2012/01/19/resource-usage-accounting-system-for-openstack/">http://openstackgd.wordpress.com/2012/01/19/resource-usage-accounting-system-for-openstack/</a></li>
<li>Dan Prince and Russell Bryant giving an introduction to OpenStack ad FUDCon <a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" target="_blank">http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg</a></li>
</ul>
<p><strong>EVENTS</strong></p>
<ul>
<li>Southern California Linux Expo SCALE10x, Jan 20-22 – Los Angeles, CA <a href="http://www.socallinuxexpo.org/scale10x/presentations/state-openstack">http://www.socallinuxexpo.org/scale10x/presentations/state-openstack</a></li>
<li>Lecture on OpenStack: Open source cloud computing Jan 21, 2012 – Pune, India (no URL: email me for details)</li>
<li>
<div>FOSDEM 2012 Feb 04 – 05, 2012 – Bruxelles, BE <a href="http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom">http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom</a></div>
</li>
<li>
<div>Inaugural OpenStack DC Meetup Feb 16, 2012 – Washington, DC <a href="http://www.meetup.com/OpenStackDC/events/47106902/" target="_blank">http://www.meetup.com/OpenStackDC/events/47106902/</a></div>
</li>
<li>
<div>OpenStack Spring 2012 Conference Apr 16 – 20, 2012 – San Francisco, California <a href="http://www.openstack.org/conference/" target="_blank">http://openstack.org/conference/</a></div>
</li>
</ul>
<p><strong>OTHER NEWS</strong></p>
<ul>
<li>OpenStack Community picks “Folsom” as the official name of next release <a href="https://lists.launchpad.net/openstack/msg06785.html">https://lists.launchpad.net/openstack/msg06785.html</a></li>
<li>OpenStack Wiki Recent Changes – <a href="http://wiki.openstack.org/RecentChanges">http://wiki.openstack.org/RecentChanges</a></li>
<ul>
<li>OpenStack Academic Initiative <a href="http://wiki.openstack.org/AcademicInitiative">http://wiki.openstack.org/AcademicInitiative</a></li>
<li>Puppet configuration for Nova <a href="http://wiki.openstack.org/PuppetConfigForNova">http://wiki.openstack.org/PuppetConfigForNova</a></li>
</ul>
<li>Team meeting summary <a href="http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-17-21.01.html">http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-17-21.01.html</a></li>
</ul>
<p><strong>COMMUNITY STATISTICS</strong></p>
<ul>
<li><strong/>We’re taking a break from producing the graphs this week. We hope to be back next week showing more precise information from commits to the master branch of OpenStack projects.</li>
</ul>
<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>This weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</p></div>
    </content>
    <updated>2012-01-20T22:41:32Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-10T17:15:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=394</id>
    <link href="http://www.joinfu.com/2012/01/diagnose-and-fix-pep8-issues-during-code-review/" rel="alternate" type="text/html"/>
    <title>Diagnose and fix PEP8 issues during code review</title>
    <summary>I figured I’d write a quick post about how to deal with “pep8 issues” that come up during code reviews on OpenStack core projects. These issues come up often for new contributors, and it can be a source of frustration until the contributor understands how to diagnose and fix the issues that come up. PEP8 [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I figured I’d write a quick post about how to deal with “pep8 issues” that come up during code reviews on <a href="http://openstack.org" title="OpenStack">OpenStack</a> core projects. These issues come up often for new contributors, and it can be a source of frustration until the contributor understands how to diagnose and fix the issues that come up.</p>
<p><a href="http://www.python.org/dev/peps/pep-0008/" title="PEP8">PEP8</a> is the Python <a href="http://www.python.org/dev/peps/pep-0001/" title="What is a PEP?">PEP</a> that deals with a recommended code style. All core (and periphery Python) OpenStack projects validate that new code pushed to the source tree is “pep8-compliant”. When a new patchset is pushed from code review to Jenkins for the set of automated pre-merge tests, the pep8 command-line tool is run against the new source tree to ensure it meets PEP8 code style standards.</p>
<p>If this PEP8 Jenkins job fails, the code submitter will see a notification that the job failed, and the contributor must fix up any pep8 issues and push those fixes up for review again. Typically, this notification looks something like this:</p>
<pre>Change subject: Added Keypair extension (os-keypairs) client and tests LP#900139
......................................................................

Patch Set 2: I would prefer that you didn't submit this

Build Unstable

https://jenkins.openstack.org/job/gate-tempest-pep8/38/ : UNSTABLE
https://jenkins.openstack.org/job/gate-tempest-merge/78/ : SUCCESS

--
To view, visit https://review.openstack.org/3179
To unsubscribe, visit https://review.openstack.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I34c7e9aa6a1796b8d4c3ac9b3b69438796752866
Gerrit-PatchSet: 2
Gerrit-Project: openstack/tempest
Gerrit-Branch: master
Gerrit-Owner: kavan-patil
Gerrit-Reviewer: Brian Waldon &lt;brian.waldon&gt;
Gerrit-Reviewer: Jay Pipes &lt;jaypipes&gt;
Gerrit-Reviewer: Jenkins
Gerrit-Reviewer: kavan-patil
</pre>
<p>
There are a couple ways you can diagnose what style points your code violated. Probably the easiest and fastest is to just follow the link in the notification email to the Jenkins job. Clicking the link above, I get to the Jenkins job page, which looks like this:
</p>
<p style="text-align: center;"><a href="http://www.joinfu.com/wp-content/uploads/2012/01/jenkins_job_pep8.png"><img alt="" class="size-full wp-image-395 aligncenter" height="544" src="http://www.joinfu.com/wp-content/uploads/2012/01/jenkins_job_pep8.png" style="border: 1px solid black;" title="jenkins_job_pep8" width="603"/></a></p>
<p>
Clicking on the graph, I get to a details screen showing the source files and lines of code that violated pep8 rules:
</p>
<p style="text-align: center;"><a href="http://www.joinfu.com/wp-content/uploads/2012/01/jenkins_job_pep8_violations.png"><img alt="" class="aligncenter size-full wp-image-396" height="467" src="http://www.joinfu.com/wp-content/uploads/2012/01/jenkins_job_pep8_violations.png" style="border: 1px solid black;" title="jenkins_job_pep8_violations" width="698"/></a></p>
<p>
I can then go to line 86 of <code>tempest/openstack.py</code> and investigate the code style
</p>
<p>
Alternately, I could run the pep8 CLI tool on my local branch, which will tell me the pep8 violations and what to fix, as shown here:
</p>
<pre>jpipes@uberbox:~/repos/tempest$ pep8 --repeat tempest
tempest/openstack.py:86:73: W292 no newline at end of file
</pre>
<p>
There we are… the <code>tempest/openstack.py</code> file doesn’t end with a newline. An easy fixup. <img alt=":)" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_smile.gif"/></p></div>
    </content>
    <updated>2012-01-20T19:13:25Z</updated>
    <category term="openstack"/>
    <category term="Python"/>
    <category term="Testing"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=238</id>
    <link href="https://openstackgd.wordpress.com/2012/01/20/using-lvm-as-disk-storage-for-openstack/" rel="alternate" type="text/html"/>
    <title>Using LVM as disk storage for OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We have added ability to use LVM volumes for instances disks in OpenStack Nova according to the blueprint. You can specify which storage type you want to use in nova.conf: –local_images_type={raw, qcow, lvm, legacy} legacy value (used by default) was … <a href="https://openstackgd.wordpress.com/2012/01/20/using-lvm-as-disk-storage-for-openstack/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=238&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div>
<p dir="ltr">We have added ability to use LVM volumes for instances disks in OpenStack Nova according to the <a href="https://blueprints.launchpad.net/nova/+spec/lvm-disk-images">blueprint</a>.</p>
<p dir="ltr">You can specify which storage type you want to use in nova.conf:</p>
<p><strong><strong> –local_images_type={raw, qcow, lvm, legacy}</strong></strong></p>
<p dir="ltr"><em>legacy</em> value (used by default) was added for backward compatibility. In case of <em>legacy</em> storage type will be controlled by old value:</p>
<p><strong><strong> –use_cow_images={True, False}</strong></strong></p>
<p dir="ltr">If you use other values, <em>use_cow_images</em> flag will be ignored. With <em>lvm</em> type you should specify LVM group to use for VM storage with <em>lvm_volume_group</em> flag:</p>
<p><strong><strong> –lvm_volume_group=&lt;existing volume group name&gt;<br/>
</strong></strong></p>
<p dir="ltr">From point of user there is no difference at all between LVM and other storage types. He can do all usual operations on instance: reboot, migrate, resize, snapshot. One difference is that we disable snapshotting of running instance and add <em>force_snapshot</em> option to <em>snapshot_instance</em> method of OpenStack API to override this behaviour.</p>
<ul>
<li>Code: <a href="https://github.com/griddynamics/osc-robot-nova/commit/a1cd719481ff76b871d58bc3d5bf683850dc4a04">https://github.com/griddynamics/osc-robot-nova/commit/a1cd719481ff76b871d58bc3d5bf683850dc4a04</a></li>
<li>RHEL repository: <a href="http://yum.griddynamics.net/yum/diablo">http://yum.griddynamics.net/yum/diablo</a></li>
<li>CentOS repository: <a href="http://yum.griddynamics.net/diablo-centos">http://yum.griddynamics.net/yum/diablo-centos</a></li>
</ul>
</div>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/238/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/238/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/238/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=238&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-20T10:19:15Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Boris Filippov</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=392</id>
    <link href="http://www.joinfu.com/2012/01/the-science-of-commit-messages/" rel="alternate" type="text/html"/>
    <title>The Science (or Art?) of Commit Messages</title>
    <summary>There are some things in the world of development that you appreciate much more when you do a lot of code reviews. One of those things is commit messages. At first glance, commit messages seem to be a small, relatively innocuous thing for a developer. When you commit code, you type in some description about [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
There are some things in the world of development that you appreciate much more when you do a lot of code reviews. One of those things is commit messages.
</p>
<p>
At first glance, commit messages seem to be a small, relatively innocuous thing for a developer. When you commit code, you type in some description about your code changes and then, typically, push your code somewhere for review by someone.
</p>
<p>
Regardless of whether the code you pushed is going to an open source project, an internal proprietary code repository, or just some code exchanged between friends working on a joint project, that simple little commit message tells the person reading your code a whole lot about you. It speaks volumes about the way you feel about the code you submit and the quality of the review you <em>expect</em> for your code.
</p>
<p>
As an example, suppose I was working on some code that fixed a bug. I got my code ready for initial review and I did the following:
</p>
<pre>$&gt; git commit -a -m "Fixes some stuff"
</pre>
<p>
And then I push my commit somewhere using <code>git push</code> …
</p>
<p>
Inevitably, what happens is that another developer will get some email or notification that I have pushed code up to some repository. It is likely that this notification will look something like this:
</p>
<pre>Change subject: Fixes some stuff
......................................................................

Fixes some stuff

Change-Id: I79bbac32b5c99742b5cb283c6e55e6204bf92adc
---
M path/to/some/changed/file
1 file changed, 1 insertion(+), 1 deletion(-)
</pre>
<p>
And in the notification will be some link to a place to go do a code review.
</p>
<p>
Now, what do you think is the first thought that goes through the reviewer’s mind? My guess would be: <em>Really? Fixes <strong>what</strong> stuff?</em> By not including any context about what the patch is attempting to solve, you leave the reviewer with a bad taste in their mouth. And a bad taste in the reviewer’s mouth generally means one thing: <em>a reluctance to review your patch</em>.
</p>
<p>
OK, so what could we do to make the commit message better, to provide the reviewer with more initial context about your patch? Well, the first thing that comes to mind is to reference a specific bug that you are fixing with this patch.
</p>
<p>
Alright, so we amend our commit message to include a bug identifier:
</p>
<pre>$&gt; git commit --amend -m "Fixes Bug 123456"
</pre>
<p>
And subsequently push our amended commit message. The reviewer now gets a new notification that you’ve amended a previous patch. Now the notification includes the bug identifier. What do you think the next thought a typical reviewer might have? My guess is this: <em>What, does this developer think that I’ve memorized all the bug IDs for all open bugs? How should I know what Bug 123456 is about?</em> And here comes that bad taste in the mouth again.
</p>
<p>
OK, so this time, we will forgo the use of the time-saving <code>-m</code> switch to <code>git commit</code> and actually type a proper, multi-line commit message in our editor of choice that describes the bug that our patch fixes, including a brief description of how we fixed the bug:
</p>
<pre>git commit --amend  # This will open up your editor...
</pre>
<p>
Now we’d enter a good commit message … something like this would work:
</p>
<pre>Fixes Bug 123456 - ImportError raised improperly in Storage Driver

Due to a circular dependency, an ImportError was improperly
being thrown when the storage driver was set to XYZ. Rearranged
code to remove circular dependency.
</pre>
<p>
The commit message now will give the reviewer everything they need in the notification to understand what the patch is for and how you solved a bug, without needing to go to their bug tracker to figure out what the bug was about.
</p>
<p>
A detailed commit message shows you care about the time that reviewers spend on your patch and that you value the code you are submitting.</p></div>
    </content>
    <updated>2012-01-19T19:26:22Z</updated>
    <category term="Git"/>
    <category term="Open Source"/>
    <category term="openstack"/>
    <category term="Python"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1828</id>
    <link href="http://www.openstack.org/blog/2012/01/recording-of-openstack-foundation-mission-and-roadmap/" rel="alternate" type="text/html"/>
    <title>Recording of OpenStack Foundation mission and roadmap</title>
    <summary>For those that couldn’t participate to past week’s webinar, here is the recording of Mark Collier and Jonathan Bryce presenting the draft mission of OpenStack Foundation and its roadmap. (The audio starts around minute 2:50). A total of 86 people participated to the events, 51 on Thursday and 35 on Friday. Since the chat was [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For those that couldn’t participate to past week’s webinar, here is the recording of Mark Collier and Jonathan Bryce presenting the draft mission of OpenStack Foundation and its roadmap. (The audio starts around minute 2:50). A total of 86 people participated to the events, 51 on Thursday and 35 on Friday. Since the chat was not visible to every participant, we’re disclosing the complete logs of the chat for <a href="http://www.openstack.org/blog/wp-content/uploads/2012/01/conference_chat_5186502.csv">both</a> <a href="http://www.openstack.org/blog/wp-content/uploads/2012/01/conference_chat_5182911.csv">events</a>, unedited . All questions were addressed by Mark and Jonathan. We’re looking for a different tool to use for future webinars.</p>
<p>&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="320" id="player" width="480"&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="src" value="http://cc.readytalk.com/cc/download/rss/cyh5o1/embed.swf"/&gt;&lt;param name="allowscriptaccess" value="sameDomain"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="wmode" value="transparent"/&gt;&lt;embed allowfullscreen="true" allowscriptaccess="sameDomain" height="320" id="player" src="http://cc.readytalk.com/cc/download/rss/cyh5o1/embed.swf" type="application/x-shockwave-flash" width="480" wmode="transparent"&gt;&lt;/object&gt;</p></div>
    </content>
    <updated>2012-01-19T18:45:09Z</updated>
    <category term="community"/>
    <category term="Governance"/>
    <category term="Webinar"/>
    <category term="foundation"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-10T03:25:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=232</id>
    <link href="https://openstackgd.wordpress.com/2012/01/19/resource-usage-accounting-system-for-openstack/" rel="alternate" type="text/html"/>
    <title>Resource usage accounting system for OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">`nova-billing` service is ready for community review. It is a service which accounts resource usage per project (tenant). This information can be used for charging client later. Currently it collects information about instances and images and snapshost in glance.  Local … <a href="https://openstackgd.wordpress.com/2012/01/19/resource-usage-accounting-system-for-openstack/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=232&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>`nova-billing` service is ready for community review. It is a service which accounts resource usage per project (tenant). This information can be used for charging client later.</p>
<p>Currently it collects information about instances and images and snapshost in glance.  Local disk usage (<em>Gb*h</em>), memory (<em>Mb*h</em>) and virtual CPU count (<em>vcpus*h</em>) are accounted for VM instances and disk space (<em>Gb*h</em>) is accounted for images in glance .</p>
<p>Next we are going to include other resources like network storages (volumes).</p>
<p>Links:</p>
<ul>
<li><a href="http://github.com/griddynamics/nova-billing">source code</a></li>
<li><a href="http://github.com/griddynamics/nova-billing/issues">issue tracker</a></li>
<li><a href="http://www.griddynamics.com/openstack/docs/nova-billing/">documentation</a></li>
<li><a href="http://yum.griddynamics.net/yum/diablo/">yum repository with RHEL package</a></li>
<li><a href="http://yum.griddynamics.net/yum/diablo-centos/">yum repository with CentOS package</a></li>
</ul>
<p>Information can be received from REST interface or you can use CLI command `nova2ools-billing` from `nova2ools` set (available from Yum repositories).</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/232/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/232/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=232&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-19T11:09:52Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Dmitry Maslennikov</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://domsch.com/blog/?p=561</id>
    <link href="http://domsch.com/blog/?p=561" rel="alternate" type="text/html"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/fudcon-blacksburg-2012-FPL-state-of-Fedora.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openshift.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/intro-to-arm.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/cloudstack.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/aeolus.ogg" rel="enclosure"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/fudcon-blacksburg-2012-FPL-state-of-Fedora.ogg" length="53579095" rel="enclosure" type="audio/ogg"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openshift.ogg" length="111343407" rel="enclosure" type="audio/ogg"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/intro-to-arm.ogg" length="142988013" rel="enclosure" type="audio/ogg"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/cloudstack.ogg" length="66705023" rel="enclosure" type="audio/ogg"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" length="113102190" rel="enclosure" type="audio/ogg"/>
    <link href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/aeolus.ogg" length="56880354" rel="enclosure" type="audio/ogg"/>
    <link href="http://domsch.com/blog/?p=561#comments" rel="replies" type="text/html"/>
    <link href="http://domsch.com/blog/?feed=atom&amp;p=561" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">FUDCon Blacksburg videos</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">&lt;style type="text/css"&gt;
#leftcontainerBox {
float:left;
position: fixed;
top: 60%;
left: 70px;
}

#leftcontainerBox .buttons {
float:left;
clear:both;
margin:4px 4px 4px 4px;

padding-bottom:2px;
}


#bottomcontainerBox {
height: 30px;
width:50%;
padding-top:1px;
}

#bottomcontainerBox .buttons {
float:left;
height: 30px;
margin:4px 4px 4px 4px;
}

&lt;/style&gt;
I shot videos of several of the presentations at the Fedora User and Developer Conference yesterday.  For your viewing pleasure: “State of Fedora” from the Fedora Project Leader, Jared Smith [ogg] Mike McGrath, team lead for OpenShift, demoing OpenShift [ogg] … <a href="http://domsch.com/blog/?p=561">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">&lt;style type="text/css"&gt;
#leftcontainerBox {
float:left;
position: fixed;
top: 60%;
left: 70px;
}

#leftcontainerBox .buttons {
float:left;
clear:both;
margin:4px 4px 4px 4px;

padding-bottom:2px;
}


#bottomcontainerBox {
height: 30px;
width:50%;
padding-top:1px;
}

#bottomcontainerBox .buttons {
float:left;
height: 30px;
margin:4px 4px 4px 4px;
}

&lt;/style&gt;
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fdomsch.com%2Fblog%2F%3Fp%3D561"><br/>
				<img height="61" src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fdomsch.com%2Fblog%2F%3Fp%3D561&amp;source=mdomsch&amp;style=normal&amp;service=bit.ly&amp;service_api=R_89b2e22ea80c9b70ca655a8a47e3bb87&amp;space=16&amp;b=2" width="50"/><br/>
			</a>
		</div>
<p>I shot videos of several of the presentations at the Fedora User and Developer Conference yesterday.  For your viewing pleasure:</p>
<ul>
<li>“State of Fedora” from the Fedora Project Leader, Jared Smith [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/fudcon-blacksburg-2012-FPL-state-of-Fedora.ogg" target="_blank">ogg</a>]</li>
<li>Mike McGrath, team lead for OpenShift, demoing OpenShift [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openshift.ogg" target="_blank">ogg</a>]</li>
<li>Jon Masters and Chris Tyler, on the ARM architecture in Fedora [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/intro-to-arm.ogg" target="_blank">ogg</a>]. ARM is a secondary architecture today.  By Fedora 18, with your help, it needs to become a primary architecture.</li>
<li>David Nalley presented on CloudStack, which is aiming for Fedora 17 inclusion. [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/cloudstack.ogg">ogg</a>]</li>
<li>Dan Prince and Russell Bryant giving an introduction to OpenStack [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/openstack.ogg" target="_blank">ogg</a>]</li>
<li>Mo Morsi presenting the Aeolus cloud management project [<a href="http://alt.fedoraproject.org/pub/alt/videos/2012/fudcon-blacksburg/aeolus.ogg">ogg</a>]</li>
</ul>
<p>[Update 1/18/2012] I was able to upload all the videos to YouTube.  <a href="http://www.youtube.com/playlist?list=PL2BAA7FF83E6482C2" rel="nofollow">http://www.youtube.com/playlist?list=PL2BAA7FF83E6482C2</a><br/>
is a playlist with all 6.</p></div>
    </content>
    <updated>2012-01-18T23:36:31Z</updated>
    <published>2012-01-15T17:50:34Z</published>
    <category scheme="http://domsch.com/blog" term="Linux"/>
    <category scheme="http://domsch.com/blog" term="Uncategorized"/>
    <category scheme="http://domsch.com/blog" term="Fedora"/>
    <category scheme="http://domsch.com/blog" term="FUDCon"/>
    <category scheme="http://domsch.com/blog" term="OpenStack"/>
    <author>
      <name>mdomsch</name>
      <uri>http://domsch.com</uri>
    </author>
    <source>
      <id>http://domsch.com/blog/?feed=atom</id>
      <link href="http://domsch.com/blog" rel="alternate" type="text/html"/>
      <link href="http://domsch.com/blog/?feed=atom&amp;tag=openstack" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">"It Just Works" is more than just a slogan, it's a way of life!</subtitle>
      <title xml:lang="en">domsch.com blog » OpenStack</title>
      <updated>2012-01-18T23:36:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=818</id>
    <link href="http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/18/making-more-solid-openstack-releases/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Making more solid OpenStack releases</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">As we pass the middle of the Essex development cycle, questions about the solidity of this release start to pop up. After all, the previous releases were far from stellar, and with more people betting their business on OpenStack we can’t really afford another half-baked release. Common thinking (mostly coming from years of traditional software [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=818&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>As we pass the middle of the <a href="http://wiki.openstack.org/EssexReleaseSchedule" target="_blank">Essex development cycle</a>, questions about the solidity of this release start to pop up. After all, the previous releases were far from stellar, and with more people betting their business on OpenStack we can’t really afford another half-baked release.</p>
<p>Common thinking (mostly coming from years of traditional software development experience) is that we shouldn’t release until it’s ready, or good enough, and calls early for pushing back the release dates. This assumes the issue is incidental: that we underestimated the time it would take our finite team of internal developers working on bugs to reach a sufficient level of quality.</p>
<p>OpenStack, being an open source project produced by a large community, works differently. We have a near-infinite supply of developers. The issue is, unfortunately, more structural than incidental. The lack of solidity for a release comes from:</p>
<ul>
<li><strong>Lack of focus on generic bugfixes.</strong> Developers should work on fixing bugs. Not just the ones they filed or the ones blocking them in their feature-adding frenzy. Fixing identified, targeted, known issues. The bugtracker is full of them, but they don’t get attention.</li>
<li><strong>Not enough automated testing to efficiently catch regressions.</strong> Even if everyone was working on bug fixes, if half your fixes end up creating a set of regressions, then there is no end to it.</li>
<li><strong>Lack of bug triaging resources.</strong> Only a few people work on confirming, triaging and prioritizing the flow of incoming bugs. So the bugs that need the most attention are lost in the noise.</li>
</ul>
<p>For the Diablo cycle, we had less than a handful of people focused on generic bugfixing. The rest of our 150+ authors were busy working on something else. Pushing back the release for a week, a month or a year won’t help OpenStack solidity if the focus doesn’t switch. And if our focus switches, then there will be no need for a costly release delay.</p>
<h4>Acting now to make Essex a success</h4>
<p>During the Essex cycle, our Project Technical Leads have done their share of the work by using a very early milestone for their feature freeze. Keystone, Glance and Nova will freeze at <em>Essex-3</em>, giving us 10 weeks for bugfixing work (compared to the 4 weeks we had for Diablo). Now we need to take advantage of that long period and really switch our mindset away from feature development and towards generic bug fixing.</p>
<p>Next week we’ll hit feature freeze, so <strong>now</strong> is the time to switch.  If we could:</p>
<ul>
<li>have some more developers working on increasing our integration and unit test coverage</li>
<li>have the rest of the developers really working on generic bug fixing</li>
<li>have very active core reviewers that get more anal-retentive as we get closer to release, to avoid introducing regressions that would not be caught by our automated tests</li>
</ul>
<p>…then I bet that it will lead to a stronger release than any delaying of the release could give you. Note that we’ll also have a <a href="http://wiki.openstack.org/BugSquashingDay/20120202" target="_blank">bug squashing day</a> on February 2 that will hopefully help us getting on top of old, deprecated and easy fixes, and give us a clear set of targets for the rest of the cycle.</p>
<p>That’s on our ability to switch our focus that hinges the quality of future OpenStack releases. That’s on what we’ll be judged. The world awaits, and the time is now.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/818/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/818/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/818/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=818&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-18T14:16:57Z</updated>
    <published>2012-01-18T14:16:57Z</published>
    <category scheme="http://fnords.wordpress.com" term="Open source"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-752710089425978223.post-6857008492198282689</id>
    <link href="http://www.linuxjedi.co.uk/feeds/6857008492198282689/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.linuxjedi.co.uk/2012/01/change-in-direction.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/752710089425978223/posts/default/6857008492198282689" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/752710089425978223/posts/default/6857008492198282689" rel="self" type="application/atom+xml"/>
    <link href="http://www.linuxjedi.co.uk/2012/01/change-in-direction.html" rel="alternate" type="text/html"/>
    <title>A Change in Direction</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">In 2008 my career took a sudden unexpected turn into the world of MySQL when I was offered a job at Sun.  Since then MySQL and it's forks have been a big part of my life.  The whole community (I mean the people, not the companies) around MySQL are part of what really drove me.<br/><br/>Unfortunately to me something has changed.  I am not exactly sure what it is, but I am sure it is not just me because others have expressed it in conversation too.  I wasn't enjoying things as much as I used to and for several reasons, some related to this, I have been quite ill.<br/><br/>Recently I was approached by <a href="http://hpcloud.com/">HP's new cloud division</a> who wanted me to work on <a href="http://openstack.org/">OpenStack</a>.  It seemed the perfect opportunity to start something new inside a new vibrant community.  That is not to say I have anything against my previous employer, <a href="http://www.skysql.com/">SkySQL</a>.  They are doing a fantastic job with a great vision and I wish them well in the future.<br/><br/>So, I have been working on OpenStack's Core Infrastructure team for a week and a half now and so far I am loving it.  The community is very welcoming and it is refreshing to see a development model similar to the one used in <a href="http://www.drizzle.org/">Drizzle</a> so widely adopted.  I look forward to diving deeper into the OpenStack world and blogging about it as I go.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/752710089425978223-6857008492198282689?l=www.linuxjedi.co.uk" width="1"/></div></div>
    </content>
    <updated>2012-01-18T09:59:58Z</updated>
    <published>2012-01-18T09:59:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="openstack"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="drizzle"/>
    <author>
      <name>LinuxJedi</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/01375584331170874012</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-752710089425978223</id>
      <category term="mydumper"/>
      <category term="engines"/>
      <category term="drizzle"/>
      <category term="myloader"/>
      <category term="openstack"/>
      <category term="libeatmydata"/>
      <category term="GSoC"/>
      <category term="MySQL"/>
      <category term="rackspace"/>
      <category term="last week in drizzle"/>
      <category term="documentation"/>
      <category term="authentication"/>
      <category term="php"/>
      <category term="migration"/>
      <category term="libdrizzle"/>
      <category term="compiling"/>
      <category term="conference"/>
      <category term="skysql"/>
      <category term="book"/>
      <category term="wordpress"/>
      <category term="oracle"/>
      <category term="mysqlbinlog"/>
      <author>
        <name>LinuxJedi</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/01375584331170874012</uri>
      </author>
      <link href="http://www.linuxjedi.co.uk/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/752710089425978223/posts/default/-/openstack" rel="self" type="application/atom+xml"/>
      <link href="http://www.linuxjedi.co.uk/search/label/openstack" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Ramblings of a Linux Jedi</subtitle>
      <title>LinuxJedi's /dev/null</title>
      <updated>2012-02-16T18:05:56Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1817</id>
    <link href="http://www.openstack.org/blog/2012/01/the-first-openstack-bug-squashing-day-is-coming-on-feb-2nd/" rel="alternate" type="text/html"/>
    <title>The First OpenStack Bug Squashing Day Is Coming On Feb 2nd</title>
    <summary>Shine your keyboards, hackers of OpenStack: on February 2nd 2012 you will be called to fight the ever growing number of bugs that keep creeping in our beloved code.  On Bug Squashing Day all the OpenStack developer community will focus mainly on Nova to: Close old fixed bugs. Old bugs are nasty. Even when they [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="https://secure.flickr.com/photos/vermininc/3252444605/sizes/m/in/faves-tenisgigante/"><img alt="" class="alignright  wp-image-1818" height="320" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/3252444605_d0da419933.jpg" title="squashing the bug" width="273"/></a>Shine your keyboards, hackers of OpenStack: on February 2nd 2012 you will be called to fight the ever growing number of bugs that keep creeping in our beloved code.  On Bug Squashing Day all the OpenStack developer community will focus mainly on Nova to:</p>
<ul>
<li><strong>Close old fixed bugs</strong>. Old bugs are nasty. Even when they are long dead, they clog bug views and render the lists unusable. Just look at old bugs and check if they still apply ! If they don’t, close them as <em>FixReleased</em> (if you can pinpoint when they were fixed) or <em>Invalid</em> (if you can’t).</li>
<li><strong>Fix bugs</strong>. The best thing you can do on a bug squashing day is to kill a live one. Just look at the list of <em>Confirmed</em> or <em>Triaged</em> and pick your target. Submit a change that fixes it. Ask for review help on the channel.</li>
<li><strong>Triage incoming bugs</strong>. It’s sometimes hard to distinguish fresh bugs from false alarms. You can help by using your expertise or reproduction skills on <em>New</em> bugs. If you can confirm the issue, set the bug to <em>Confirmed</em>. If you can fix it, read the previous chapter. If you need more info from the reporter, set it to <em>Incomplete</em>. And if it happens to not really be valid, set it to <em>Invalid</em>.</li>
</ul>
<p>You don’t have to be an experienced Nova developer to participate, and we believe that February 2nd will be a great way to get started with the OpenStack community. You can get started by looking at <a href="http://devstack.org/">Devstack</a> to build your complete OpenStack development environment. The other projects are welcome to focus on quality that day but Nova is the one that will get more attention.</p>
<p>The event will happen mostly online, in a dedicated #openstack-bugsquash IRC channel on Freenode (that all participants are encouraged to join for the duration of the event). There will also be <strong>live meetings</strong> in <a href="http://www.meetup.com/OpenStack-Austin/events/48406252/">Austin</a> and <a href="http://www.meetup.com/openstack/events/48362422/">San Francisco</a>, hosted by Rackspace with food, drinks and games.</p>
<p>Do you want to host a Bug Squash Day on Feb 2nd? Let us know and we’ll add it to the list.</p>
<p> </p></div>
    </content>
    <updated>2012-01-16T22:37:53Z</updated>
    <category term="community"/>
    <category term="Contest"/>
    <category term="Development"/>
    <category term="Meetup"/>
    <category term="bug squashing day"/>
    <category term="development"/>
    <category term="meetup"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-08T14:50:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=216</id>
    <link href="https://openstackgd.wordpress.com/2012/01/16/testing-framework/" rel="alternate" type="text/html"/>
    <title>Testing framework</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Today we would like to share with you one of our recent subprojects. It is our testing framework. We have used to automate our tests for OpenStack with Lettuce. However we found that we need more features to build robust … <a href="https://openstackgd.wordpress.com/2012/01/16/testing-framework/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=216&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Today we would like to share with you one of our recent subprojects. It is our testing framework. We have used to automate our tests for OpenStack with <a href="http://lettuce.it/" title="Lettuce">Lettuce</a>. However we found that we need more features to build robust framework with it. So we created a <strong><a href="http://www.griddynamics.com/openstack/docs/bunch/" title="Bunch">Bunch</a></strong> tool. The main reason for Bunch was the motivation to write more flexible and powerful tests with Lettuce. Key points to improve were:</p>
<ul>
<li><strong>Avoid hardcoded values in test scenarios.</strong> Lettuce offers the only way for data-driven scenarios. This is done via scenario outlines. What means that all data is stored in script itself. External data sources may be only supported by your own test code. We may fill that gap introducing Jinja2 templates and YAML configuration files. Feature templates stay readable but gain flexibility. The regular Lettuce scripts are generated on every test execution thus saving BDD style. Stories remain comprehensible for an end-user.</li>
<li><strong>Write test fixtures explicitly.</strong> It should be possible to write setup and teardown BDD stories. It is also important to have behavior specifications for installation procedures.</li>
<li><strong>Share and re-use test fixtures, specify that test depends on specific fixtures</strong> Tests should be self-suffucient and should not rely on the state created by other tests. However it is often a huge overhead when each test performs its own setup which may always be the same. It is required to provide the concept of “dependencies” between tests and test fixtures.</li>
<li><strong>Tests are environment agnostic but test fixtures are environment dependent</strong>. We may enable writing environment agnostic tests by moving all environment specific action into test fixtures. Thus test fixtures may have multiple versions aimed for different environments.</li>
</ul>
<p>So we gathered these requirements and planned the following features for implementation:</p>
<ol>
<li><strong>Support for scenario templates</strong>. <em>Scenarios become parameterizable and do not loose BDD spirit. Foreign Lettuce scenarios can be adopted by replacing hardcoded values with template variables. (YAML and Jinja2 were used for that)</em></li>
<li><strong>Explicit separation of test fixtures from tests</strong> (setup, teardown and test scripts). <em>Test scenario should not contain any actions that are specific to platform/configuration and should only perform actions on the product under test.</em></li>
<li><strong>Dependency specification for setup/teardown fixtures</strong> and sharing fixtures among tests.  <em>Most of tests rely on the same state while other may have specific prerequisites.</em></li>
<li><strong>Parallel test execution.</strong> <em>This is often required for long running end-to-end scenarios. That feature introduces a requirement that which are planned to be executed in parallel should be independent from each other and does not use the same resources.</em></li>
</ol>
<p>Points 1-3 are implemented now. That should be enough to start using it.  However there is a plenty of stuff planned on the <a href="https://www.pivotaltracker.com/projects/439047">road-map</a>.</p>
<p>We also shared our OpenStack test suite which runs within our CI workflow. So you may have a look how Bunch works. Links to tool, doc and tests are below:</p>
<ul>
<li>Bunch source code: <a href="https://github.com/griddynamics/bunch">https://github.com/griddynamics/bunch</a></li>
<li>Bunch documentation: <a href="http://www.griddynamics.com/openstack/docs/bunch/">http://www.griddynamics.com/openstack/docs/bunch/</a></li>
<li>OpenStack test suite: <a href="https://github.com/griddynamics/openstack-core-test">https://github.com/griddynamics/openstack-core-test</a></li>
</ul>
<p>Just install Bunch, check out tests, adjust <em>config.yaml</em> and execute:<br/>
<code>bunch -e clean openstack-core-test/smoketests/basic/ <code>&lt;resultdir&gt;<br/>
</code></code></p>
<p>Both Bunch and tests are under active development, so there are not much tests in the repo. This is just the beginning. Stay tuned.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/216/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/216/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/216/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=216&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-16T13:01:19Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Sergey Kosyrev</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://openstackgd.wordpress.com/?p=219</id>
    <link href="https://openstackgd.wordpress.com/2012/01/16/grid-dynamics-open-stack-development-activities/" rel="alternate" type="text/html"/>
    <title>Grid Dynamics Open Stack development activities</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Hello everybody. We want to share our roadmap with a community. In the nearest future Grid Dynamics are going to focus on new component and services development. All services will be open sourced. What are we going to present soon: … <a href="https://openstackgd.wordpress.com/2012/01/16/grid-dynamics-open-stack-development-activities/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=219&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hello everybody.</p>
<p>We want to share our roadmap with a community. In the nearest future Grid Dynamics are going to focus on new component and services development. All services will be open sourced.</p>
<p>What are we going to present soon:</p>
<ul>
<li>Now we are developing resource accounting system for OpenStack (nova-billing).</li>
<li>We are developing DNS service, so every VM in a cloud will be resolved by its name and administrators of tenants will own one subdomain and will be able to add custom DNS records or subdomains.</li>
<li>We have created separate set of utilities called <em>nova2ools</em> and going to present them soon. They will offer utilities to work with nova and utilities to work with our services like billing or DNS.</li>
<li>We are going to start working on hardware provisioning for OpenStack. Sometimes it is very important to be able to work on real hardware. Ability to get hardware in a OpenStack way through REST API should be very useful.</li>
</ul>
<p>To reflect this activities we have created a site with documentation and additional information: <a href="http://www.griddynamics.com/openstack" target="_blank">http://www.griddynamics.com/openstack</a>.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openstackgd.wordpress.com/219/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/openstackgd.wordpress.com/219/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openstackgd.wordpress.com/219/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=openstackgd.wordpress.com&amp;blog=20742273&amp;post=219&amp;subd=openstackgd&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-16T09:57:31Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Dmitry Maslennikov</name>
    </author>
    <source>
      <id>https://openstackgd.wordpress.com</id>
      <logo>https://s-ssl.wordpress.com/i/buttonw-com.png</logo>
      <link href="https://openstackgd.wordpress.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://openstackgd.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://openstackgd.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://openstackgd.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Grid Dynamics OpenStack team blog</title>
      <updated>2012-02-22T18:15:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=390</id>
    <link href="http://www.joinfu.com/2012/01/openstack-qa-walkthrough-of-processes-tools-and-code/" rel="alternate" type="text/html"/>
    <title>Presentation: OpenStack QA – Walkthrough of Processes, Tools and Code</title>
    <summary>Last night I gave a short webinar to some folks about the basics of contributing to the Tempest project, which is the OpenStack integration test suite. It was the first time I’d used Google Docs to create and give a presentation and I must say I was really impressed with the ease-of-use of Google Docs [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Last night I gave a short webinar to some folks about the basics of contributing to the <a href="http://github.com/openstack/tempest" title="Tempest - OpenStack Integration Test Suite">Tempest</a> project, which is the OpenStack integration test suite. It was the first time I’d used Google Docs to create and give a presentation and I must say I was really impressed with the ease-of-use of Google Docs Presentation. Well done, Google.
</p>
<p>
Anyway, I’ve uploaded a <a href="http://joinfu.com/presentations/openstack-qa-processes/openstack-qa-processes.pdf" title="OpenStack QA Processes">PDF of the presentation</a> to this website and provided a link to the Google Docs presentation along with a brief overview of the topics covered in the slides below. As always, I love to get feedback on slides. Feel free to leave a comment here, email me or find me on IRC. Enjoy!
</p>
<p><img src="http://joinfu.com/presentations/openstack-qa-processes/openstack-qa-processes.png" style="float: left; margin: 0px 40px 10px 0px;"/><img src="http://joinfu.com/img/html.png"/><a href="https://docs.google.com/presentation/d/1M3XhAco_0u7NZQn3Gz53z9VOHHrkQBzEs5gt43ZvhOc/edit" title="OpenStack QA - Walkthrough of Processes, Tools and Code">Google Presentation (HTML)</a><br/>
<img src="http://joinfu.com/img/pdf.png"/><a href="http://joinfu.com/presentations/openstack-qa-processes/openstack-qa-processes.pdf" title="OpenStack QA - Walkthrough of Processes, Tools and Code">PDF  slides</a><br/>
<br clear="left"/><br/>
Topics included in the slides:</p>
<ul>
<li>OpenStack Contribution Process</li>
<li>Running Devstack Locally</li>
<li>Running Tempest against an Environment</li>
<li>Walkthrough the Tempest Source Code</li>
<li>Progressively improving a test case</li>
<li>Common Scenarios in Code Review and Submission</li>
</ul></div>
    </content>
    <updated>2012-01-13T22:22:38Z</updated>
    <category term="Open Source"/>
    <category term="openstack"/>
    <category term="Python"/>
    <category term="Testing"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1805</id>
    <link href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/" rel="alternate" type="text/html"/>
    <title>Community Weekly Review (Jan 6 – 13)</title>
    <summary>OpenStack Community Newsletter –January 13, 2012 HIGHLIGHTS Announced the date and venue for next OpenStack Conference and Design Summit http://www.openstack.org/blog/2012/01/the-openstack-spring-2012-conference-in-san-francisco-california-april-16-20-2012/ Comment on OpenStack Foundation  mission and roadmap http://wiki.openstack.org/Governance/Foundation Let the community know how you would want Swift to manage object versioning https://lists.launchpad.net/openstack/msg06666.html New section on openstack.org tells stories from OpenStack users : what’s your story? [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>OpenStack Community Newsletter –January 13, 2012<br/>
</strong></p>
<p><strong>HIGHLIGHTS</strong></p>
<ul>
<li>Announced the date and venue for next OpenStack Conference and Design Summit <a href="http://www.openstack.org/blog/2012/01/the-openstack-spring-2012-conference-in-san-francisco-california-april-16-20-2012/">http://www.openstack.org/blog/2012/01/the-openstack-spring-2012-conference-in-san-francisco-california-april-16-20-2012/</a></li>
<li>Comment on OpenStack Foundation  mission and roadmap <a href="http://wiki.openstack.org/Governance/Foundation">http://wiki.openstack.org/Governance/Foundation</a></li>
<li>Let the community know how you would want Swift to manage object versioning <a href="https://lists.launchpad.net/openstack/msg06666.html">https://lists.launchpad.net/openstack/msg06666.html</a></li>
<li>New section on openstack.org tells stories from OpenStack users : what’s your story? <a href="http://www.openstack.org/user-stories/">http://www.openstack.org/user-stories/</a></li>
<li>Help make history, name OpenStack ‘F’ release <a href="https://launchpad.net/~openstack/+poll/f-release-naming">https://launchpad.net/~openstack/+poll/f-release-naming</a></li>
<li>AT&amp;T joins OpenStack community <a href="http://www.openstack.org/blog/2012/01/please-welcome-att-to-the-openstack-community/">http://www.openstack.org/blog/2012/01/please-welcome-att-to-the-openstack-community/</a></li>
</ul>
<p><strong>EVENTS</strong></p>
<ul>
<li>Australian OpenStack Users Group Inaugural Meetup Part 2 Jan 17, 2012 – Melbourne, AU <a href="http://aosug.openstack.org.au/" target="_blank">http://aosug.openstack.org.au/</a></li>
<li>Southern California Linux Expo SCALE10x, Jan 20-22 – Los Angeles, CA <a href="http://www.socallinuxexpo.org/scale10x/presentations/state-openstack">http://www.socallinuxexpo.org/scale10x/presentations/state-openstack</a></li>
<li>FOSDEM 2012 Feb 04 – 05, 2012 – Bruxelles, BE <a href="http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom">http://fosdem.org/2012/schedule/track/virtualization_and_cloud_devroom</a></li>
</ul>
<p><strong>OTHER NEWS</strong></p>
<ul>
<li>OpenStack Wiki Recent Changes – <a href="http://wiki.openstack.org/RecentChanges">http://wiki.openstack.org/RecentChanges</a></li>
<ul>
<li>How to triage OpenStack bugs <a href="http://wiki.openstack.org/BugTriage">http://wiki.openstack.org/BugTriage</a></li>
<li>Quantum L2 Linux Bridge Plugin <a href="http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin">http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin</a></li>
<li>How OpenStack picks the names for its release <a href="http://wiki.openstack.org/ReleaseNaming">http://wiki.openstack.org/ReleaseNaming</a></li>
</ul>
<li>Using the HybridFox plugin to manage Openstack Nova <a href="http://docs.stackops.org/display/documentation/Using+the+HybridFox+plugin+to+manage+Openstack+Nova">http://docs.stackops.org/display/documentation/Using+the+HybridFox+plugin+to+manage+Openstack+Nova</a></li>
<li>Team meeting summary <a href="http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-10-21.06.html">http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-01-10-21.06.html</a></li>
</ul>
<p><strong>COMMUNITY STATISTICS</strong></p>
<ul>
<li><strong> </strong>Top 10 contributors of 2011 for each repository, from Jan 2 00:00:00 UTC 2012 to Jan 9 00:00:00 UTC 2012</li>
</ul>
<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-horizon/" title="2012-01-horizon"><img alt="2012-01-horizon" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-horizon-150x150.png" title="2012-01-horizon" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-manuals/" title="2012-01-manuals"><img alt="2012-01-manuals" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-manuals-150x150.png" title="2012-01-manuals" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-swift/" title="2012-01-swift"><img alt="2012-01-swift" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-swift-150x150.png" title="2012-01-swift" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-keystone/" title="2012-01-keystone"><img alt="2012-01-keystone" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-keystone-150x150.png" title="2012-01-keystone" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-quantum/" title="2012-01-quantum"><img alt="2012-01-quantum" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-quantum-150x150.png" title="2012-01-quantum" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-glance/" title="2012-01-glance"><img alt="2012-01-glance" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-glance-150x150.png" title="2012-01-glance" width="150"/></a>
<a href="http://www.openstack.org/blog/2012/01/community-weekly-review-jan-6-13/2012-01-nova/" title="2012-01-nova"><img alt="2012-01-nova" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/2012-01-nova-150x150.png" title="2012-01-nova" width="150"/></a>
</p>
<p><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/><img alt="" src="http://www.openstack.org/blog/wp-includes/js/tinymce/plugins/wpgallery/img/t.gif" title="gallery link=&quot;file&quot;"/>This weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</p></div>
    </content>
    <updated>2012-01-13T21:27:05Z</updated>
    <category term="community"/>
    <category term="Newsletter"/>
    <category term="weekly newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-07T23:10:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1779</id>
    <link href="http://www.openstack.org/blog/2012/01/the-openstack-spring-2012-conference-in-san-francisco-california-april-16-20-2012/" rel="alternate" type="text/html"/>
    <title>The OpenStack Spring 2012 Design Summit &amp; Conference in San Francisco, California: April 16-20, 2012</title>
    <summary>We are excited to announce that the Spring 2012 OpenStack Design Summit &amp; OpenStack Conference are planned for April 16-20, 2012 in San Francisco, California. Please start making plans to join us! Learn more about the events on The Official Event Page. Please note: Registration has not yet opened. More details, including accommodations, call for [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We are excited to announce that the Spring 2012 OpenStack Design Summit &amp; OpenStack Conference are planned for <strong>April 16-20, 2012 in San Francisco, California</strong>. Please start making plans to join us!</p>
<p><a href="http://www.openstack.org/conference/"><img alt="" class="alignright size-medium wp-image-1788" height="225" src="http://www.openstack.org/blog/wp-content/uploads/2012/01/san-francisco-summit-300x225.jpg" title="san-francisco-summit" width="300"/></a></p>
<p>Learn more about the events on <a href="http://www.openstack.org/conference/">The Official Event Page</a>.</p>
<p><strong>Please note:</strong> Registration has not yet opened. More details, including accommodations, call for papers and the sponsorship prospectus will be available shortly.</p>
<p>Note that two events take place the same week: The Design Summit and the Conference. So, which should <em>you</em> attend?</p>
<p><strong>Everyone:</strong> If you are an OpenStack user, provider, researcher, developer, or enthusiast, you’ll want to attend the <strong>OpenStack Conference</strong> held Thursday and Friday, April 19 &amp; 20th. This is the main event and it includes keynotes, panel sessions, and vendor exhibitors who can help you get the most out of OpenStack.</p>
<p><strong>Developers:</strong> If you are an active developer in the OpenStack community, you’ll also want to attend the <strong>Design Summit</strong>, happening right before the conference (April 16-18th). The Design Summit is kept intentionally small so that we can have productive working sessions as we discuss and plan for development on the next release of OpenStack.</p>
<p>We hope you’ll make the trip and join us at what’s shaping up to be a fantastic and informative event.</p></div>
    </content>
    <updated>2012-01-13T19:36:49Z</updated>
    <category term="community"/>
    <category term="Event"/>
    <category term="Conference"/>
    <category term="Design Summit"/>
    <category term="san francisco"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-07T15:50:03Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=810</id>
    <link href="http://fnords.wordpress.com/2012/01/13/virtualization-cloud-devroom-at-fosdem/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/13/virtualization-cloud-devroom-at-fosdem/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2012/01/13/virtualization-cloud-devroom-at-fosdem/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Virtualization &amp; Cloud devroom at FOSDEM</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">The Free and Open source Software Developers’ European Meeting, or FOSDEM, is an institution that happens every year in Brussels. A busy, free and open event that gets a lot of developers together for two days of presentations and cross-pollination. There are typically the FOSDEM main tracks (a set of presentations chosen by the FOSDEM [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=810&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Free and Open source Software Developers’ European Meeting, or <a href="http://fosdem.org/2012/" target="_blank">FOSDEM</a>, is an institution that happens every year in Brussels. A busy, free and open event that gets a lot of developers together for two days of presentations and cross-pollination. There are typically the FOSDEM main tracks (a set of presentations chosen by the FOSDEM organization) and a set of devrooms, which are topic-oriented or project-oriented and can organize their own schedule freely.</p>
<p>This year, FOSDEM will host an unusual devroom, the Virtualization and Cloud devroom. It will happen in the Chavanne room, a 550-seat auditorium that was traditionally used for main tracks. And it will last for two whole days, while other devrooms typically last for a day or a half-day.</p>
<p>The Virtualization and Cloud devroom is the result of the merging of three separate devroom requests: Virtualization, Xen and OpenStack devrooms. It gives us a larger space and a lot of potential for cross-pollination across projects ! We had a lot of talks proposed, and here is an overview of what you’ll be able to see there.</p>
<h4>Saturday, February 4</h4>
<p>Saturday will  be the “cloud” day. We will start with a set of talks about <strong>OpenStack, past, present and future</strong>. I will do an <a href="http://fosdem.org/2012/schedule/event/openstack_news" target="_blank">introduction and retrospective</a> of what happened last year in the project, Soren Hansen will <a href="http://fosdem.org/2012/schedule/event/hacking_on_nova" target="_blank">guide new developers to Nova</a>, and Debo Dutta will look into future work on <a href="http://fosdem.org/2012/schedule/event/app_scheduling" target="_blank">application scheduling and Donabe</a>. Next we’ll have a session on various<strong> cloud-related technologies</strong>: <a href="http://fosdem.org/2012/schedule/event/libguestfs" target="_blank">libguestfs</a>, <a href="http://fosdem.org/2012/schedule/event/pacemaker_cloud" target="_blank">pacemaker-cloud</a> and <a href="http://fosdem.org/2012/schedule/event/opennebula" target="_blank">OpenNebula</a>. The afternoon will start with a nice session on <strong>cloud interoperability</strong>, including presentations on the <a href="http://fosdem.org/2012/schedule/event/aeolus" target="_blank">Aeolus</a>, <a href="http://fosdem.org/2012/schedule/event/compatibleone" target="_blank">CompatibleOne</a> and <a href="http://fosdem.org/2012/schedule/event/deltacloud" target="_blank">Deltacloud</a> <a href="http://fosdem.org/2012/schedule/event/dmtf_deltacloud" target="_blank">efforts</a>. We’ll continue with a session on <strong>cloud deployment</strong>, with a strong OpenStack focus: Ryan Lane will talk about how Wikimedia maintains infrastructure <a href="http://fosdem.org/2012/schedule/event/wikimedia_infra" target="_blank">like an open source project</a>, Mike McClurg will look into <a href="http://fosdem.org/2012/schedule/event/openstack_xcp_ubuntu" target="_blank">Ubuntu+XCP+OpenStack</a> deployments, and Dave Walker will introduce the <a href="http://fosdem.org/2012/schedule/event/cloud_orchestration" target="_blank">Orchestra project</a>. The day will end with a <a href="http://fosdem.org/2012/schedule/event/osdem" target="_blank">town hall meeting</a> for all <strong>OpenStack developers</strong>, including a panel of distribution packagers: I will blog more about that one in the next weeks.</p>
<h4>Sunday, February 5</h4>
<p>Sunday is more “virtualization” day ! The day will start early with two presentations by Hans de Goede about <a href="http://fosdem.org/2012/schedule/event/spice" target="_blank">Spice</a> and <a href="http://fosdem.org/2012/schedule/event/usb_network_redirect" target="_blank">USB redirection over the network</a>. Then we’ll have a session on <strong>virtualization management</strong>, with Guido Trotter giving more <a href="http://fosdem.org/2012/schedule/event/ganeti_news" target="_blank">Ganeti news</a> and <a href="http://fosdem.org/2012/schedule/event/ovirt_intro" target="_blank">three</a> <a href="http://fosdem.org/2012/schedule/event/ovirt_engine_core" target="_blank">talks</a> <a href="http://fosdem.org/2012/schedule/event/ovirt_vdsm" target="_blank">about</a> oVirt. In the afternoon we’ll have a more technical session around <strong>virtualization in development</strong>: Antti Kantee will introduce ultralightweight kernel service virtualization with <a href="http://fosdem.org/2012/schedule/event/rump_kernels" target="_blank">rump kernels</a>, Renzo Davoli will lead a <a href="http://fosdem.org/2012/schedule/event/tracing_virt_workshop" target="_blank">workshop on tracing and virtualization</a>, and Dan Berrange will show how to build application <a href="http://fosdem.org/2012/schedule/event/libvirt_lxc_kvm_sandboxes" target="_blank">sandboxes on top of LXC and KVM with libvirt</a>. The day will end with another developers meeting, this time the <strong>Xen developers</strong> will meet around Ian Campbell and his <a href="http://fosdem.org/2012/schedule/event/xen" target="_blank">Xen deployment troubleshooting workshop</a>.</p>
<p>All in all, that’s two days packed with very interesting presentations, in a devroom large enough to accomodate a good crowd, so we hope to see you there !</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/810/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/810/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/810/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=810&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2012-01-13T14:43:06Z</updated>
    <published>2012-01-13T14:43:06Z</published>
    <category scheme="http://fnords.wordpress.com" term="Cloud"/>
    <category scheme="http://fnords.wordpress.com" term="Open source"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.openstack.org/blog/?p=1774</id>
    <link href="http://www.openstack.org/blog/2012/01/presenting-openstack-foundation-mission-and-roadmap-webinar/" rel="alternate" type="text/html"/>
    <title>Presenting OpenStack Foundation mission and roadmap [webinar]</title>
    <summary>Jonathan Bryce and Mark Collier will host two webinars to illustrate the draft mission for the future OpenStack Foundation. The draft was published on http://wiki.openstack.org/Governance/Foundation/ and it’s the fist building block of the organisation that was announced in Boston. They will be available to answer questions about the roadmap and deadlines proposed for the project.  [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Jonathan Bryce and Mark Collier will host two webinars to illustrate the draft mission for the future OpenStack Foundation. The draft was published on <a href="http://wiki.openstack.org/Governance/Foundation/">http://wiki.openstack.org/Governance/Foundation/</a> and it’s the fist building block of the organisation that <a href="http://www.openstack.org/blog/2011/10/openstack-foundation/">was announced in Boston</a>. They will be available to answer questions about the roadmap and deadlines proposed for the project.  We believe a live conversation will complement the online discussion on the foundation mailing list. We picked the times of the webinars to accommodate the needs of people living across the world and we picked the technology that is most accessible. You can use your favourite operating system or dial in using toll free numbers for virtually anywhere in the world. If you encounter problems please let us know.</p>
<p>The first webinar will be held on <a href="https://cc.readytalk.com/r/ogxx717wjy06">Thursday Jan 12, 2012 at 06:00 PM CST</a> (register here <a href="https://cc.readytalk.com/r/ogxx717wjy06" target="_blank"> https://cc.readytalk.com/r/ogxx717wjy06</a>) and the following day on <a href="https://cc.readytalk.com/r/9o9bdh6hb3vn">Friday, Jan 13, 2012 at 9:00 AM CST</a> (register here <a href="https://cc.readytalk.com/r/9o9bdh6hb3vn">https://cc.readytalk.com/r/9o9bdh6hb3vn</a>).</p>
<p>You may find the converter useful <a href="http://www.timeanddate.com/worldclock/converter.html">http://www.timeanddate.com/worldclock/converter.html</a> to find your local time.</p></div>
    </content>
    <updated>2012-01-10T18:39:46Z</updated>
    <category term="community"/>
    <category term="Governance"/>
    <category term="Webinar"/>
    <category term="foundation"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2012-02-03T19:20:23Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://ryandlane.com/blog/?p=502</id>
    <link href="http://ryandlane.com/blog/2012/01/06/fixing-a-very-broken-instance-live-migration-manually/" rel="alternate" type="text/html"/>
    <title>Fixing a very broken instance live migration manually</title>
    <summary>I had a situation recently where a number of live migrations failed in a truly nasty way. The live migration failed part way through, but didn’t properly back-out the changes. This left the instance running nowhere, but in a “migrate” state in the database. I tried to reboot the instance, which then left the instance [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I had a situation recently where a number of live migrations failed in a truly nasty way. The live migration failed part way through, but didn’t properly back-out the changes. This left the instance running nowhere, but in a “migrate” state in the database. I tried to reboot the instance, which then left the instance in the “running” state.</p>
<p>Of course, the instance wasn’t actually running anywhere and the reboot command wouldn’t start the instance, because it thought it was running. The logs complained that the instance wasn’t running whether I tried to restart the migration, or reboot. What a full of fail situation.</p>
<p>So, to fix this, I needed to make the instance actually start. In this situation, the database thought the instance was running on host virt2, but the instance’s libvirt files were on virt4. I copied the nwfilter file across to /etc/libvirt/nwfilter, then the domain file across to /etc/libvirt/qemu. I then created the nwfilter, then the domain:</p>
<pre style="padding-left: 30px;">virsh nwfilter-define /etc/libvirt/nwfilter/&lt;instance-nwfilter&gt;.xml
virsh create /etc/libvirt/qemu/&lt;instance-domain&gt;.xml</pre>
<p>Once the instance was started, I re-migrated the instance and all was good.</p>
<p>As a side note, I think what caused the migration failure was that I tried to migrate too many instances at the same time from a host that was already slightly overloaded. Of course, this is no excuse for nova to fail.</p></div>
    </content>
    <updated>2012-01-06T02:13:57Z</updated>
    <category term="OpenStack"/>
    <category term="Virtualization"/>
    <author>
      <name>Ryan Lane</name>
    </author>
    <source>
      <id>http://ryandlane.com/blog</id>
      <link href="http://ryandlane.com/blog/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://ryandlane.com/blog" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <title>Ryan Lane's Blog » OpenStack</title>
      <updated>2012-02-22T18:15:11Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://swiftstack.com/blog/2012/01/04/swift-tempauth</id>
    <link href="http://swiftstack.com/blog/2012/01/04/swift-tempauth/" rel="alternate" type="text/html"/>
    <title>TempAuth Users and Administrators</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A few questions have come up about TempAuth, Swift's built-in authentication system; in particular, what the various administrator levels are. This is how it works.</p>

<p>In our small lakeside town, Albert runs a small gas station that also sells OpenStack Swift object storage to other local businesses. He has two customers: Bob's Bait Shack (on the north side of town) and Hook, Line, and Sinker (on the south side).</p>

<p>At Bob's Bait Shack, there are two people who need accounts. Bob, the owner, is the account administrator, while his employee Sue has more limited access. At Hook, Line, and Sinker, there's Harold (the owner), Liam, and Sue (different Sue), in a similar situation.</p>

<p>Here's what Albert's TempAuth configuration would look like:</p>

<pre><code>...
[filter:tempauth]
use = egg:swift#tempauth
user_alsgasandswift_al = swordfish .reseller_admin

user_bobsbaitshack_bob = catfish .admin
user_bobsbaitshack_sue = dogfish

user_hooklineandsinker_harold = goldfish .admin
user_hooklineandsinker_liam = tunafish
user_hooklineandsinker_sue = blowfish
...
</code></pre>

<h3>Username scoping</h3>

<p>The first thing to understand is that users are scoped under accounts. There are two users named "sue", but they are under different accounts, have different passwords, and can access different things. The user "bobsbaitshack:sue" has access to containers and objects under the "bobsbaitshack" account, while the user "hooklineandsinker:sue" is restricted to things in the "hooklineandsinker" account.</p>

<h3>Account-level super-user status</h3>

<p>In TempAuth, it's possible to assign super-user status at the account level by saying <code>.admin</code> in the config file. The user "bobsbaitshack:bob" is in the <code>.admin</code> group, and so he can create, delete, and modify any container or object in the bobsbaitshack account. However, he can't touch anything in the hooklineandsinker account. Similarly, the user "hooklineandsinker:harold" has full rights over every container and object in the hooklineandsinker account, but has no rights to anything in the bobsbaitshack account.</p>

<h3>Cluster-level super-user status</h3>

<p>To make someone a cluster-level super-user, you put them in the <code>.reseller_admin</code> group. In our example, the user "alsgasandswift:al" is a member of the <code>.reseller_admin</code> group, and so he can do anything to any object or container in the entire system. He can upload files to one of Bob's containers, he can delete files from one of Harold's containers, and he can revoke and grant permissions for any existing non-admin user. He's got full access to anything in the Swift cluster.</p>

<p>Note that the privileges granted by <code>.reseller_admin</code> are a superset of those granted by <code>.admin</code>. This means that putting a user in both groups doesn't accomplish anything over putting them only in <code>.reseller_admin</code>.</p></div>
    </content>
    <updated>2012-01-04T18:09:00Z</updated>
    <source>
      <id>http://swiftstack.com/</id>
      <author>
        <name>SwiftStack</name>
        <email>contact@swiftstack.com</email>
      </author>
      <link href="http://swiftstack.com/blog/categories/planetopenstack/atom.xml" rel="self" type="application/atom+xml"/>
      <link href="http://swiftstack.com/" rel="alternate" type="text/html"/>
      <title>Category: PlanetOpenStack | SwiftStack Blog</title>
      <updated>2012-02-22T00:02:27Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.stillhq.com/openstack/000002.html</id>
    <link href="http://www.stillhq.com/openstack/000002.html" rel="alternate" type="text/html"/>
    <title>Further adventures with base images in OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I was bored over the New Years weekend, so I figured I'd have a go at implementing <a href="http://wiki.openstack.org/nova-image-cache-management">image cache management</a> as discussed <a href="http://www.stillhq.com/openstack/000001.html">previously</a>. I actually have an implementation of about 75% of that blueprint now, but its not ready for prime time yet. The point of this post is more to document some stuff I learnt about VM startup along the way so I don't forget it later.

<br/><br/>

So, you want to start a VM on a compute node. Once the scheduler has selected a node to run the VM on, the next step is the compute instance on that machine starting the VM up. First the specified disk image is fetched from your image service (in my case glance), and placed in a temporary location on disk. If the image is already a raw image, it is then renamed to the correct name in the instances/_base directory. If it isn't a raw image then it is converted to raw format, and that converted file is put in the right place. Optionally, the image can be extended to a specified size as part of this process.

<br/><br/>

Then, depending on if you have copy on write (COW) images turned on or not, either a COW version of the file is created inside the instances/$instance/ directory, or the file from _base is copied to instances/$instance.

<br/><br/>

This has a side effect that had me confused for a bunch of time yesterday -- the checksums, and even file sizes, stored in glance are not reliable indicators of base image corruption. Most of my confusion was because image files in glance are immutable, so how come they differed from what's on disk? The other problem was that the images I was using on my development machine were raw images, and checksums did work. It was only when I moved to a slightly more complicated environment that I had enough data to work out what was happening.

<br/><br/>

We therefore have a problem for that blueprint. We can't use the checksums from glance as a reliable indicator of if something has gone wrong with the base image. I need to come up with something nicer. What this probably means for the first cut of the code is that checksums will only be verified for raw images which weren't extended, but I haven't written that code yet.

<br/><br/>

So, there we go.

<br/><br/><i>Tags for this post: <a href="http://www.stillhq.com/tags/openstack.html">openstack</a> <a href="http://www.stillhq.com/tags/cloud.html">cloud</a> <a href="http://www.stillhq.com/tags/computing.html">computing</a> <a href="http://www.stillhq.com/tags/nova.html">nova</a> <a href="http://www.stillhq.com/tags/glance.html">glance</a> <a href="http://www.stillhq.com/tags/qemu.html">qemu</a> <a href="http://www.stillhq.com/tags/image.html">image</a> <a href="http://www.stillhq.com/tags/management.html">management</a> <a href="http://www.stillhq.com/tags/canonical.html">canonical</a></i><br/><i>Related posts: <a href="http://www.stillhq.com/openstack/000001.html">Openstack compute node cleanup</a>; <a href="http://www.stillhq.com/openstack/000004.html">Wow, qemu-img is fast</a>; <a href="http://www.stillhq.com/stumbleupon/000001.html">Playing with StumbleUpon</a>; <a href="http://www.stillhq.com/diary/000892.html">Why document management is good</a>; <a href="http://www.stillhq.com/book/Michael_Lopp/Being_Geek.html">Being Geek</a>; <a href="http://www.stillhq.com/diary/000943.html">Over-analysed Friday comments on Half Nekkid Thursday</a>; <a href="http://www.stillhq.com/diary/001118.html">Taking over a launch pad project</a>; <a href="http://www.stillhq.com/imagemagick/perl/photomagick/000001.html">Perl sample source code</a>; <a href="http://www.stillhq.com/imagemagick/000001.html">Old ImageMagick packages in Debian and Ubuntu</a>; <a href="http://www.stillhq.com/openstack/000003.html">Slow git review uploads?</a>; <a href="http://www.stillhq.com/imagemagick/book/000020.html">Color ebook!</a>; <a href="http://www.stillhq.com/diary/000855.html">Giving the ACS the benefit of the doubt</a>; <a href="http://www.stillhq.com/diary/000792.html">Cataloguing meta data against multi media formats</a>; <a href="http://www.stillhq.com/google/000009.html">Looking for Women studying computing in Australia</a>; <a href="http://www.stillhq.com/macintosh/osx/000007.html">MacOS' RSS screen saver really unreliable?</a>; <a href="http://www.stillhq.com/diary/000749.html">Supporting more than one browser for your website, or does Firefox really make my life harder?</a>; <a href="http://www.stillhq.com/lifehack/000001.html">Life hacking</a>; <a href="http://www.stillhq.com/link/000149.html">Scott Adam's blog: the boner theory of management</a>; <a href="http://www.stillhq.com/imagemagick/000006.html">The architecture of PerlMagick</a>; <a href="http://www.stillhq.com/diary/000798.html">Gartner recommends blogging over electronic content management</a>; <a href="http://www.stillhq.com/diary/lca2005/000038.html">On delegation and event running</a></i>

<br/><br/>
<a href="http://www.stillhq.com/openstack/000002.commentform.html">Comment</a></div>
    </summary>
    <updated>2012-01-03T07:13:00Z</updated>
    <source>
      <id>http://www.stillhq.com</id>
      <author>
        <name>Michael Still</name>
      </author>
      <link href="http://www.stillhq.com" rel="alternate" type="text/html"/>
      <link href="http://www.stillhq.com/openstack/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>The life, times, travel and software of Michael Still</subtitle>
      <title>stillhq.com : Mikal, a geek from Canberra living in Silicon Valley</title>
      <updated>2012-02-22T08:55:36Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://swiftstack.com/blog/2011/12/29/an-evening-of-swift</id>
    <link href="http://swiftstack.com/blog/2011/12/29/an-evening-of-swift/" rel="alternate" type="text/html"/>
    <title>An Evening of Swift</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://twitter.com/#!/notmyname/status/144911123165102081/photo/1"><img class="left" src="http://swiftstack.com/images/posts/golden_gate_bridge.jpg" title="'Photo of the Golden Gate Bridge Taken by John Dickinson'" width="250"/></a>
Earlier this month, we had great turnout for an OpenStack meetup in the San Francisco bay area focusing on Swift. Many thanks to Dave Neilson who helped organize the event and to Nebula who sponsored food &amp; drinks. In one night we had a 2-hour Swift install training workshop, and had 3 speakers giving their perspectives on the state of OpenStack Swift. It wasn't just a meetup, it was a Swift conference! There was about 4 hours of OpenStack Swift workshops and speakers.</p>

<p><a href="http://twitter.com/#!/SwiftStack/status/144576179393929216/photo/1"><img class="right" src="http://swiftstack.com/images/posts/joe_arnold_openstack_meetup_2011_12_07.JPG" title="'Darrell Bishop and Joe Arnold walking through the Swift Workshop'" width="250"/></a></p>

<p>We started with a Swift Install Training Workshop. The packed room was working with Darrell Bishop and Joe Arnold on getting Swift up and running. For those of you who missed the class, we put the workshop online for those who want to take it. <a href="http://swiftstack.com/swiftworkshop">http://swiftstack.com/swiftworkshop</a></p>

<p>We feel that the best way to learn about something is to actually do it. So the workshop philosophy went through each step of configuration so that everyone could understand Swift cluster architecture and its configuration. For example, we walked the class through how to format and mount drives in the system, what all the configuration settings mean, what processes are running on the server and what those processes are responsible for.</p>

<p>In the end, most everyone walked away with a virtual machine running Swift on their laptop.</p>

&lt;iframe height="480" src="http://docs.google.com/viewer?url=http%3A%2F%2Fswiftstack.com%2Fswiftworkshop%2FSwiftWorkshop-2011-12-07.pdf&amp;amp;embedded=true" style="border: none;" width="600"&gt;&lt;/iframe&gt;


<p>After the Swift install training session, we had a great lineup of speakers.</p>

<p><a href="http://twitter.com/#!/SwiftStack/status/144617719776555009/photo/1"><img class="left" src="http://swiftstack.com/images/posts/daniel_ford_openstack_meetup_2011_12_07.JPG" title="'Daniel Ford presenting " width="250"/></a>
The first speaker was Daniel Ford of Nebula who kicked us off with a lightning talk - "Swift within the Storage Ecosystem". It was a great overview of the storage landscape and where object storage fits / falls into the storage ecosystem.</p>

<p><a href="http://twitter.com/#!/SwiftStack/status/144624827897102336/photo/1"><img class="right" src="http://swiftstack.com/images/posts/reinhardt_quelle_openstack_meetup_2011_12_07.JPG" title="'Reinhardt Quelle presenting " width="250"/></a></p>

<p>Then Reinhardt Quelle of Cisco talked about the cloud initiatives within Cisco. He addresed process around selecting which platform services they are offering internally and why OpenStack is interesting to Cisco beyond networking.</p>

<p><a href="http://twitter.com/#!/SwiftStack/status/144629877084131328/photo/1"><img class="left" src="http://swiftstack.com/images/posts/john_dickinson_openstack_meetup_2011_12_07.JPG" title="'John Dickinson presenting " width="250"/></a>
Lastly, John Dickinson, the Technical Project lead of Swift who works at Rackspace, gave a talk on the current state of Swift. It was a great overview of how Swift is architected and the future direction of Swift. His slides are below.</p>

&lt;iframe height="480" src="http://docs.google.com/viewer?url=http%3A%2F%2Fd.not.mn%2Fswift_overview.pdf&amp;amp;embedded=true" style="border: none;" width="600"&gt;&lt;/iframe&gt;


<p>Looking forward to the next meetup!</p></div>
    </content>
    <updated>2011-12-29T23:11:00Z</updated>
    <source>
      <id>http://swiftstack.com/</id>
      <author>
        <name>SwiftStack</name>
        <email>contact@swiftstack.com</email>
      </author>
      <link href="http://swiftstack.com/blog/categories/planetopenstack/atom.xml" rel="self" type="application/atom+xml"/>
      <link href="http://swiftstack.com/" rel="alternate" type="text/html"/>
      <title>Category: PlanetOpenStack | SwiftStack Blog</title>
      <updated>2012-02-22T00:02:27Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=388</id>
    <link href="http://www.joinfu.com/2011/12/openstack-one-of-10-most-important-open-source-projects-in-2011/" rel="alternate" type="text/html"/>
    <title>OpenStack One of 10 Most Important Open Source Projects in 2011</title>
    <summary>Joe “Zonker” Brockmeier recently posted his list of the top 10 most important open source projects of 2011, and OpenStack was in there. I agree that OpenStack is one of the most compelling open source projects this year. I think back to the Cactus release earlier in the year and really am amazed at the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Joe “Zonker” Brockmeier recently posted his list of the <a href="https://www.linux.com/news/featured-blogs/196:zonker/524082:the-10-most-important-open-source-projects-of-2011">top 10 most important open source projects of 2011</a>, and OpenStack was in there.</p>
<p>I agree that OpenStack is one of the most compelling open source projects this year. I think back to the Cactus release earlier in the year and really am amazed at the amount of change in many of the core OpenStack projects — Nova in particular. We’ve had an explosion of contribution from a ton of individuals working at a who’s who list of technology companies, and I expect to see that passion and enthusiasm for OpenStack only continue to grow through 2012. Lots to look forward to. <img alt=":)" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>Here’s to an innovative 2012 and continued collaboration in the open source community on this terrific set of cloud infrastructure projects.</p></div>
    </content>
    <updated>2011-12-23T18:23:37Z</updated>
    <category term="Open Source"/>
    <category term="openstack"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://ryandlane.com/blog/?p=499</id>
    <link href="http://ryandlane.com/blog/2011/12/22/openstackmanager-version-1-3-released/" rel="alternate" type="text/html"/>
    <title>OpenStackManager version 1.3 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The OpenStackManager extension is a web interface for OpenStack, and a manager for a fully integrated test and development network being written primarily for Wikimedia Foundation use. I’ve been busy enough lately working on our OpenStack infrastructure that I haven’t made an OpenStackManager release in a while. Over the past seven months I’ve continued to [...]
Related posts:<ol>
<li><a href="http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/" rel="bookmark" title="OpenStackManager version 1.2 released">OpenStackManager version 1.2 released</a></li>
<li><a href="http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/" rel="bookmark" title="OpenStackManager version 1.1 released">OpenStackManager version 1.1 released</a></li>
<li><a href="http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/" rel="bookmark" title="Announcing OpenStackManager extension for MediaWiki">Announcing OpenStackManager extension for MediaWiki</a></li>
</ol></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>The <a href="http://www.mediawiki.org/wiki/Extension:OpenStackManager">OpenStackManager extension</a> is a web interface for <a href="http://www.openstack.org/">OpenStack</a>, and a manager for a fully integrated test and development network being <a href="http://ryandlane.com/blog/category/openstack/2011/01/02/building-a-test-and-development-infrastructure-using-openstack/">written primarily for Wikimedia Foundation use</a>.</em></p>
<p>I’ve been busy enough lately working on our OpenStack infrastructure that I haven’t made an OpenStackManager release in a while. Over the past seven months I’ve continued to make small changes to the software, and the past few weeks I’ve added features I feel deserve another release.</p>
<p>This is a bugfix and features release. Major changes include compatibility for cactus and diablo releases of nova, and 1.18 compatibility for MediaWiki. The changes in this release focused mainly on making workflow easier. Here’s a complete list of changes:</p>
<ul>
<li>Added a reboot action for instances</li>
<li>Made compatibility changes for cactus and diablo nova releases</li>
<li>Made compatibility changes for MediaWiki 1.18</li>
<li>Added support for configurable naming attributes</li>
<li>Added support for adding objectclasses and attributes for users that are missing them</li>
<ul>
<li>It’s now possible for MediaWiki to no longer have to create users, only update select user attributes and objectclasses</li>
</ul>
<li>Made a bunch of bugfixes regarding security groups</li>
<li>Added support for wildcard DNS entries</li>
<li>Added realm and instancename variables to puppet default variables, so that they can be used in puppet runs</li>
<li>Added support for wiki page creation for Projects</li>
<li>Added support for configuring default images for instances</li>
<li>Added support for creating server admin logs per project</li>
<li>Added support for default security group rules on project creation</li>
<li>Added dialog to project creation for adding members to projects and roles upon creation</li>
<li>Added support for managing puppet classes and variables through the interface, rather than LocalSettings.php</li>
<li>Made a usability change to instance creation: the default security group will always be selected by default</li>
<li>Added support for including the ssh key fingerprint of an instance in the “your instance is ready” emails</li>
<li>Made a usability change to only show actions to users if they can perform them</li>
<li>Lots of other minor bug fixes</li>
<li>Bugfixes from John Du Hart, Sam Reed and Mark Hershberger</li>
</ul>
<p>If you’d like to help develop this extension, I’ve created a development environment in a project in Wikimedia Labs. Find me on #wikimedia-labs on Freenode or email me to get a labs account and access to the project.</p>
<p>Related posts:</p><ol>
<li><a href="http://ryandlane.com/blog/2011/03/14/openstackmanager-version-1-2-released/" rel="bookmark" title="OpenStackManager version 1.2 released">OpenStackManager version 1.2 released</a></li>
<li><a href="http://ryandlane.com/blog/2011/01/30/openstackmanager-version-1-1-released/" rel="bookmark" title="OpenStackManager version 1.1 released">OpenStackManager version 1.1 released</a></li>
<li><a href="http://ryandlane.com/blog/2011/01/24/announcing-openstackmanager-extension-for-mediawiki/" rel="bookmark" title="Announcing OpenStackManager extension for MediaWiki">Announcing OpenStackManager extension for MediaWiki</a></li>
</ol><p/></div>
    </content>
    <updated>2011-12-22T15:30:10Z</updated>
    <category term="LDAP"/>
    <category term="MediaWiki"/>
    <category term="OpenStack"/>
    <category term="Semantic MediaWiki"/>
    <category term="Virtualization"/>
    <category term="Wikimedia"/>
    <author>
      <name>Ryan Lane</name>
    </author>
    <source>
      <id>http://ryandlane.com/blog</id>
      <link href="http://ryandlane.com/blog/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://ryandlane.com/blog" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <title>Ryan Lane's Blog » OpenStack</title>
      <updated>2012-02-22T18:15:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=800</id>
    <link href="http://fnords.wordpress.com/2011/12/20/ending-the-year-well-openstack-essex-2-milestone/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/12/20/ending-the-year-well-openstack-essex-2-milestone/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/12/20/ending-the-year-well-openstack-essex-2-milestone/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Ending the year well: OpenStack Essex-2 milestone</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">2011 is almost finished, and what a year it has been. We started it with two core projects and one release behind us. During 2011, we got three releases out of the door, grew from 60 code contributors to about 200, added three new core projects, and met for two design summits. The Essex-2 milestone [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=800&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>2011 is almost finished, and what a year it has been. We started it with two core projects and one release behind us. During 2011, we got three releases out of the door, grew from 60 code contributors to about 200, added three new core projects, and met for two design summits.</p>
<p>The Essex-2 milestone was released last week. Here is our now-regular overview of the work that made it to OpenStack core projects since the previous milestone.</p>
<p>Nova was the busiest project. Apart from my work on a new <a href="https://blueprints.launchpad.net/nova/+spec/nova-rootwrap" target="_blank">secure root wrapper</a> (detailed on <a href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/" target="_blank">previous</a> <a href="http://fnords.wordpress.com/2011/11/25/improving-nova-privilege-escalation-model-part-2/" target="_blank">articles</a> <a href="http://fnords.wordpress.com/2011/11/30/improving-nova-privilege-escalation-model-part-3/" target="_blank">of</a> this blog), we added a pair of OpenStack API extensions to support the <a href="https://blueprints.launchpad.net/nova/+spec/nova-volume-snapshot-backup-api" target="_blank">creation of snapshots and backups of volumes</a>, the <a href="https://blueprints.launchpad.net/nova/+spec/separate-nova-metadata" target="_blank">metadata service</a> can now run separately from the API node, network limits can now be set using a <a href="https://blueprints.launchpad.net/nova/+spec/bandwidth-rate-limit-multipliers-and-base-limits" target="_blank">per-network base and a per-flavor multiplier</a>, and a small usability feature lets you retrieve the <a href="https://blueprints.launchpad.net/nova/+spec/lasterror" target="_blank">last error</a> that occurred using nova-manage. But Essex is not about new features, it’s more about consistency and stability. On the consistency front, the <a href="https://blueprints.launchpad.net/nova/+spec/xenapi-ha-nova-network" target="_blank">HA network mode was extended to support XenServer</a>, KVM compute nodes now <a href="https://blueprints.launchpad.net/nova/+spec/kvm-report-capabilities" target="_blank">report capabilities</a> to zones like Xen ones, and the Quantum network manager now <a href="https://blueprints.launchpad.net/nova/+spec/quantum-nat-parity" target="_blank">supports NAT</a>. Under the hood, <a href="https://blueprints.launchpad.net/nova/+spec/nova-vm-state-management" target="_blank">VM state transitions</a> have been strengthened, the network data model <a href="https://blueprints.launchpad.net/nova/+spec/compute-network-info" target="_blank">has</a> <a href="https://blueprints.launchpad.net/nova/+spec/network-info-model" target="_blank">been</a> overhauled, internal interfaces now support <a href="https://blueprints.launchpad.net/nova/+spec/internal-uuids" target="_blank">UUID instance references</a>, and unused callbacks have <a href="https://blueprints.launchpad.net/nova/+spec/remove-virt-driver-callbacks" target="_blank">been removed</a> from the virt driver.</p>
<p>The other projects were all busy starting larger transitions (Keystone’s RBAC, Horizon new user experience, and Glance 2.0 API), leaving less room for essex-2 features. Glance still saw the addition of  a <a href="https://blueprints.launchpad.net/glance/+spec/custom-disk-buffer" target="_blank">custom directory for data buffering</a>. Keystone introduced <a href="https://blueprints.launchpad.net/keystone/+spec/global-templates" target="_blank">global endpoints templates</a> and <a href="https://blueprints.launchpad.net/keystone/+spec/keystone-swift-acls" target="_blank">swauth-like ACL enforcement</a>. Horizon added UI support for <a href="https://blueprints.launchpad.net/horizon/+spec/cert-download" target="_blank">downloading RC files</a>, while migrating under the hood from <a href="https://blueprints.launchpad.net/horizon/+spec/migrate-to-bootstrap" target="_blank">jquery-ui to bootstrap</a>, and adding a <a href="https://blueprints.launchpad.net/horizon/+spec/environment-versioning" target="_blank">versioning scheme</a> for environment/dependencies.</p>
<p>The next milestone is in a bit more than a month: January 26th, 2012. Happy new year and holidays to all !</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/800/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/800/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=800&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2011-12-20T17:03:15Z</updated>
    <published>2011-12-20T17:03:15Z</published>
    <category scheme="http://fnords.wordpress.com" term="Cloud"/>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.stillhq.com/openstack/000001.html</id>
    <link href="http://www.stillhq.com/openstack/000001.html" rel="alternate" type="text/html"/>
    <title>Openstack compute node cleanup</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've never used openstack before, which I imagine is similar to many other people out there. Its actually pretty cool, although I encountered a problem the other day that I think is worthy of some more documentation. Openstack runs virtual machines for users, in much the same manner as Amazon's EC2 system. These instances are started with a base image, and then copy on write is used to write differences for the instance as it changes stuff. This makes sense in a world where a given machine might be running more than one copy of the instance.

<br/><br/>

However, I encountered a compute node which was running low on disk. This is because there is currently nothing which cleans up these base images, so even if none of the instances on a machine require that image, and even if the machine is experiencing disk stress, the images still hang around. There are a few blog posts out there about this, but nothing really definitive that I could find. I've <a href="https://bugs.launchpad.net/nova/+bug/904532">filed a bug asking for the Ubuntu package to include some sort of cleanup script</a>, and interestingly that led me to learn that <a href="http://wiki.openstack.org/nova-image-cache-management">there are plans for a pretty comprehensive image management system</a>. Unfortunately, it doesn't seem that anyone is working on this at the moment. I would offer to lend a hand, but its not clear to me as an openstack n00b where I should start. If you read this and have some pointers, feel free to contact me.

<br/><br/>

Anyways, we still need to cleanup that node experiencing disk stress. It turns out that nova uses qemu for its copy on write disk images. We can therefore ask qemu which are in use. It goes something like this:

<br/><br/>

<ul><pre>$ cd /var/lib/nova/instances
$ find -name "disk*" | xargs -n1 qemu-img info | grep backing | \
  sed -e's/.*file: //' -e 's/ .*//' | sort | uniq &gt; /tmp/inuse
</pre></ul>

<br/><br/>

<i>/tmp/inuse</i> will now contain a list of the images in _base that are in use at the moment. Now you can change to the base directory, which defaults to <i>/var/lib/nova/instances/_base</i> and do some cleanup. What I do is I look for large image files which are several days old. I then check if they appear in that temporary file I created, and if they don't I delete them.

<br/><br/>

I'm sure that this could be better automated by a simple python script, but I haven't gotten around to it yet. If I do, I will be sure to mention it here.

<br/><br/><i>Tags for this post: <a href="http://www.stillhq.com/tags/openstack.html">openstack</a> <a href="http://www.stillhq.com/tags/cloud.html">cloud</a> <a href="http://www.stillhq.com/tags/computing.html">computing</a> <a href="http://www.stillhq.com/tags/nova.html">nova</a> <a href="http://www.stillhq.com/tags/glance.html">glance</a> <a href="http://www.stillhq.com/tags/qemu.html">qemu</a> <a href="http://www.stillhq.com/tags/image.html">image</a> <a href="http://www.stillhq.com/tags/management.html">management</a> <a href="http://www.stillhq.com/tags/ubuntu.html">ubuntu</a> <a href="http://www.stillhq.com/tags/canonical.html">canonical</a></i><br/><i>Related posts: <a href="http://www.stillhq.com/openstack/000002.html">Further adventures with base images in OpenStack</a>; <a href="http://www.stillhq.com/imagemagick/000001.html">Old ImageMagick packages in Debian and Ubuntu</a>; <a href="http://www.stillhq.com/openstack/000004.html">Wow, qemu-img is fast</a>; <a href="http://www.stillhq.com/stumbleupon/000001.html">Playing with StumbleUpon</a>; <a href="http://www.stillhq.com/diary/000892.html">Why document management is good</a>; <a href="http://www.stillhq.com/book/Michael_Lopp/Being_Geek.html">Being Geek</a>; <a href="http://www.stillhq.com/diary/000943.html">Over-analysed Friday comments on Half Nekkid Thursday</a>; <a href="http://www.stillhq.com/linux/ubuntu/000005.html">Nice touch</a>; <a href="http://www.stillhq.com/diary/001118.html">Taking over a launch pad project</a>; <a href="http://www.stillhq.com/linux/ubuntu/000006.html">What packages are taking all my disk?</a>; <a href="http://www.stillhq.com/imagemagick/perl/photomagick/000001.html">Perl sample source code</a>; <a href="http://www.stillhq.com/diary/toys/dell/e310/000001.html">Installing Linux on a Dell Dimension e310</a>; <a href="http://www.stillhq.com/mysql/conference/mysqluc2006/000006.html">MySQL Workbench</a>; <a href="http://www.stillhq.com/linux/ubuntu/000002.html">Ubuntu Breezy and Dovecot hate me</a>; <a href="http://www.stillhq.com/openstack/000003.html">Slow git review uploads?</a>; <a href="http://www.stillhq.com/imagemagick/book/000020.html">Color ebook!</a>; <a href="http://www.stillhq.com/linux/ubuntu/000007.html">Upgrading Ubuntu Feisty now that its end of lifed</a>; <a href="http://www.stillhq.com/diary/000855.html">Giving the ACS the benefit of the doubt</a>; <a href="http://www.stillhq.com/diary/000792.html">Cataloguing meta data against multi media formats</a>; <a href="http://www.stillhq.com/google/000009.html">Looking for Women studying computing in Australia</a>; <a href="http://www.stillhq.com/mysql/mysqluc/000006.html">MySQL Workbench</a></i>

<br/><br/>
<a href="http://www.stillhq.com/openstack/000001.commentform.html">Comment</a></div>
    </summary>
    <updated>2011-12-19T08:59:00Z</updated>
    <source>
      <id>http://www.stillhq.com</id>
      <author>
        <name>Michael Still</name>
      </author>
      <link href="http://www.stillhq.com" rel="alternate" type="text/html"/>
      <link href="http://www.stillhq.com/openstack/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>The life, times, travel and software of Michael Still</subtitle>
      <title>stillhq.com : Mikal, a geek from Canberra living in Silicon Valley</title>
      <updated>2012-02-22T08:55:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://justwriteclick.com/?p=1821</id>
    <link href="http://justwriteclick.com/2011/12/02/from-cement-to-spandex-making-pdf-and-epub/" rel="alternate" type="text/html"/>
    <title>From Cement to Spandex – Making PDF and ePub</title>
    <summary>Which statement is true: “PDFs are like cement.” or “Gentlemen prefer PDF.” Turns out both are true! See my recent OpenStack blog entry, Hacking on Ebooks, for more context and attributions for those statements. We recently held a hackathon which I blogged about earlier to discuss the prep work for creating epub from DocBook XML [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fjustwriteclick.com%2F2011%2F12%2F02%2Ffrom-cement-to-spandex-making-pdf-and-epub%2F"><br/>
				<img height="61" src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fjustwriteclick.com%2F2011%2F12%2F02%2Ffrom-cement-to-spandex-making-pdf-and-epub%2F&amp;source=annegentle&amp;style=compact&amp;b=2" width="50"/><br/>
			</a>
		</div>
<p>Which statement is true:</p>
<blockquote><p>“PDFs are like cement.”</p></blockquote>
<p>or</p>
<blockquote><p>“Gentlemen prefer PDF.”</p></blockquote>
<p>Turns out both are true! See my recent OpenStack blog entry, <a href="http://www.openstack.org/blog/2011/11/hacking-on-ebooks/">Hacking on Ebooks</a>, for more context and attributions for those statements.</p>
<p>We recently held a hackathon which I <a href="http://justwriteclick.com/2011/11/09/docbook-epub-hackathon-what-more-could-you-ask-for/">blogged about earlier</a> to discuss the prep work for creating epub from DocBook XML source for the OpenStack and Rackspace manuals. We had a very successful day of hacking on 11/11/11. A team of about seven writers, testers, and developers worked all day to try to make epub files. And sure enough, we did it!</p>
<p><a href="http://www.openstack.org/blog/wp-content/uploads/2011/11/IMG_0426.jpg"><img alt="" class="size-medium wp-image-1546 alignleft" height="224" src="http://www.openstack.org/blog/wp-content/uploads/2011/11/IMG_0426-300x224.jpg" style="margin: 10px;" title="Epub output - iPad output, XML source, Kindle (mobi) output" width="300"/></a></p>
<p>Our list of bugs matches up with <a href="http://www.imaginaryplanet.net/weblogs/idiotprogrammer/2010/11/ebookepub-production-secrets-tips-tricks/">what others have noted about difficulties making ebooks</a>, such as sizing images properly and enabling tables that scale when zooming in or out or being displayed on a small smartphone or a larger tablet screen. Turns out, many “pro” epub creators turn all the tables into images to avoid the sizing problem. We also noticed the problem with mobi output putting a new line for each list item, and I haven’t gotten the fix working yet. We’re starting with the <a href="http://docs.openstack.org/diablo/openstack-compute/starter/os-compute-starterguide.epub">OpenStack Starter Guide available as an epub download</a> and automated outputting epub for that book. We’re checking out the downloads to see whether there’s interest and we’ll go from there!</p></div>
    </content>
    <updated>2011-12-02T21:46:52Z</updated>
    <category term="techpubs"/>
    <category term="tools"/>
    <category term="work"/>
    <category term="writing"/>
    <category term="documentation"/>
    <category term="ebook"/>
    <category term="epub"/>
    <category term="openstack"/>
    <author>
      <name>annegentle</name>
    </author>
    <source>
      <id>http://justwriteclick.com</id>
      <link href="http://justwriteclick.com/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://justwriteclick.com" rel="alternate" type="text/html"/>
      <subtitle>Documentation as conversation</subtitle>
      <title>Just Write Click » openstack</title>
      <updated>2012-02-10T15:55:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=793</id>
    <link href="http://fnords.wordpress.com/2011/11/30/improving-nova-privilege-escalation-model-part-3/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/30/improving-nova-privilege-escalation-model-part-3/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/30/improving-nova-privilege-escalation-model-part-3/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Improving Nova privilege escalation model, part 3</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">In the previous two posts of this series, we explored the deficiencies of the current model and the features of an alternative implementation. In this last post, we’ll discuss the advantages of a Python implementation and open discussion on how to secure it properly. Python implementation It’s quite easy to implement the features that were [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=793&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In the previous two posts of this series, we explored the <a href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/" target="_blank">deficiencies of the current model</a> and the <a href="http://fnords.wordpress.com/2011/11/25/improving-nova-privilege-escalation-model-part-2/" target="_blank">features of an alternative implementation</a>. In this last post, we’ll discuss the advantages of a Python implementation and open discussion on how to secure it properly.</p>
<h4>Python implementation</h4>
<p>It’s quite easy to implement the features that were mentioned in the previous post in Python. The main advantage of doing so is that the code can happily live inside Nova code, in particular the filters definition files can be implemented as Python modules that are loaded if present. That solves the issue of shipping definitions within Nova and also the separation of allowed commands based on locally-deployed nodes. The code is simple and easy to review. The trick is to make sure that no malicious code can be injected in the elevated rights process. This is why I’d like to present a model and open it for comments in the community.</p>
<h4>Proposed security model</h4>
<p>The idea would be to have Nova code optionally use “sudo nova-rootwrap” instead of “sudo” as the <em>root_helper.</em> A generic <em>sudoers</em> file would allow the <em>nova</em> user to run <em>/usr/bin/nova-rootwrap</em> as <em>root</em>, while stripping environment variables like <em>PYTHONPATH</em>. To load its filters definitions, <em>nova-rootwrap</em> would try to import a set of predefined modules (like <em>nova.rootwrap.compute</em>), but if those aren’t present, it should ignore them. Can this model be abused ?</p>
<p>The obvious issue is to make sure <em>sys.path</em> (the set of directories from which Python imports its modules) is secure, so that nobody can insert their own modules in the process. I’ve given some thoughts to various checks, but actually there is no way around trusting the default <em>sys.path</em> you’re given when you start <em>python</em> as <em>root</em> from a cleaned env. If that’s compromised, you’re toasted the moment you “import sys” anyway. So using <em>sudo</em> to only allow <em>/usr/bin/nova-rootwrap</em> and cleaning the environment should be enough. Or am I missing something ?</p>
<h4>Insecure mode ?</h4>
<p>One thing we could do is check that <em>sys.path</em> all belongs to <em>root</em> and refuse to run in the case it’s not. That would tell the user that his setup is insecure (potentially allowing him to bypass that by running “sudo nova-rootwrap –insecure” as the <em>root_helper</em>). But that’s a convenience to detect insecure setups, not a security addition (the fact that it doesn’t complain doesn’t mean you’re safe, it could mean you’re already compromised).</p>
<h4>Test mode ?</h4>
<p>For tests, it’s convenient to allow to run code from branches. To allow this (unsafe) mode, you would tweak <em>sudoers</em> to allow it to run <em>$BRANCH/bin/nova-rootwrap</em> as <em>root</em>, and prepend “..” to <em>sys.path</em> in order to allow modules to be loaded from <em>$BRANCH</em> (maybe requiring <em>–insecure</em> mode for good measure). It sounds harmless, since if you run from <em>/usr/bin/nova-rootwrap</em> you can assume that <em>/usr</em> is safe… Or should that idea be abandoned altogether ?</p>
<h4>Audit</h4>
<p>Nothing beats peer review when it comes to secure design. I call all Python module-loading experts and security white-hats out there: would this work ? Are those safe assumptions ? How much do you like <em>insecure</em> and <em>test</em> modes ? Would you suggest something else ? If you’re one of those that can’t think in words but require code, you can get a glimpse of work in progress <a href="https://github.com/ttx/nova/compare/master...root-wrapper" target="_blank">here</a>. It will all be optional (and not used by default), so it can be added to Nova without much damage, but I’d rather do it right from the beginning <img alt=":)" class="wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif"/>  Please comment !</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/793/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/793/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/793/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=793&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2011-11-30T14:29:16Z</updated>
    <published>2011-11-30T14:29:16Z</published>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.joinfu.com/?p=386</id>
    <link href="http://www.joinfu.com/2011/11/openstack-easily-pull-review-branch/" rel="alternate" type="text/html"/>
    <title>OpenStack Dev Tip — Easily Pull a Review Branch</title>
    <summary>Just a quick tip for developers working on OpenStack projects that work on multiple development machines or want to pull a colleague’s code from the Gerrit review system and test it locally. If you have followed the instructions about setting up a development environment successfully, you will have installed the git-review tool that Jim Blair [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just a quick tip for developers working on OpenStack projects that work on multiple development machines or want to pull a colleague’s code from the Gerrit review system and test it locally.</p>
<p>If you have followed the <a href="http://wiki.openstack.org/GerritWorkflow" title="OpenStack Gerrit - Development Environment">instructions</a> about setting up a development environment successfully, you will have installed the git-review tool that Jim Blair and Monty Taylor maintain. The git-review tool has a nice little feature that enables you to easily pull any branch that anyone has pushed up to code review:</p>
<pre>$&gt; git review -d $REVIEW_NUM
</pre>
<p>The <code>$REVIEW_NUM</code> variable should be replaced with the identifier of the review branch in Gerrit.</p>
<p>For example, I developed some code on my laptop that I now want to pull to my beefier work machine. The original branch is failing a few tests in Jenkins and I want to diagnose what’s going on. The review branch is here: https://review.openstack.org/#change,1656. The review number (ID) is <strong>1656</strong>.</p>
<p>To grab that branch into my local environment and check it out, I do:</p>
<pre>jpipes@uberbox:~/repos/glance$ git review -d 1656
Downloading refs/changes/56/1656/2 from gerrit into review/jay_pipes/bug/850377
</pre>
<p>Doing a git status, you’ll note that I am now in the local branch called review/jay_pipes/bug/850377:</p>
<pre>jpipes@uberbox:~/repos/glance$ git status
# On branch review/jay_pipes/bug/850377
# Your branch and 'gerrit/master' have diverged,
# and have 1 and 2 different commit(s) each, respectively.
#
nothing to commit (working directory clean)
</pre>
<p>I can now run tests, diagnose the issue(s), fix code up and do a:</p>
<pre>$&gt; git commit -a --amend
$&gt; git review
</pre>
<p>And my changes will be pushed up to the original review in Gerrit for others to look at.</p></div>
    </content>
    <updated>2011-11-28T18:06:08Z</updated>
    <category term="openstack"/>
    <category term="Python"/>
    <category term="Testing"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2012-02-19T15:25:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://maffulli.net/?p=1852</id>
    <link href="http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/" rel="alternate" type="text/html"/>
    <title>The debate about foundations for open source projects</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Two interesting articles debating about foundations for open source projects. Mikeal Rogers argues that Apache Software Foundation has served its purpose in its 12 years and now is only preserving the problem to justify its existence. Ten years ago open … <a href="http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Two interesting articles debating about foundations for open source projects. Mikeal Rogers argues that <a href="http://www.mikealrogers.com/posts/apache-considered-harmful.html">Apache Software Foundation has served its purpose</a> in its 12 years and now is only preserving the problem to justify its existence.</p>
<blockquote><p>Ten years ago open source projects faced a long list of barriers to entry. Source hosting was a pain in the ass. Wiki hosting, Mailing List hosting, bug tracking, all of these things we can now take for granted were actually quite hard to set up and maintain as recently as 5 years ago. [...]</p></blockquote>
<p>and then he adds that</p>
<blockquote><p>the world has changed Apache has become a net negative for its projects.</p></blockquote>
<p>Mainly, Mikael says, GitHub has leveled the entry field and the layer of politics added by the Apache Foundation are not necessary anymore.</p>
<p>Mike Milinkovich, executive director of Eclipse Foundation wrote a response, titled of course <a href="https://mmilinkov.wordpress.com/2011/11/25/foundations-considered-useful/">Foundations Considered Useful</a>. He lists some of the important things that Eclipse does:</p>
<blockquote><p>A small sampling of the core value-add that happens within the Eclipse Foundation and its community would include:</p>
<ul>
<li>IP management. Although we often get criticized for being overly focused on the topic, nobody does IP management better than Eclipse. Which is a huge part of fulfilling our mission of delivering product-ready software platforms. Yes, it’s a lot of work, but it is absolutely a core value, and one not easily replicated.</li>
<li>Predictability. The Eclipse community has shipped its major platform release on time to the day for eight years. Last year’s release was 46 MLOC, so we are talking about a non-trivial amount of code. The processes that we have in place to co-ordinate the activities and release engineering for 60+ projects absolutely require some amount of centralized support.</li>
<li>Branding and community. The Eclipse brand means something to people. Millions of developers around the world use Eclipse or Eclipse-based products every day. They have confidence in the software and the community that delivers it. Looking inside the community, there is definitely a pride and a sense of community that comes with being part of Eclipse. Anyone who has ever been to an EclipseCon has seen this firsthand.</li>
<li>Industry collaboration. Obviously GitHub has been wildly successful in fostering community-led open source. However, there are lots of instances where large and conservative corporations are looking at how to get involved in open source. In many cases, their business motivation is to collaborate with other industry players to create shared industry platforms. The kind of work that goes into facilitating these ventures goes far beyond picking a license and starting to hack some code. The processes that organizations like Eclipse and Apache bring to the table for project incubation, development processes, license management and IP contribution management are critical success factors.</li>
</ul>
</blockquote>
<p>Both articles are interesting reading for the OpenStack community while we think about our own foundation. What do you think?</p>
Share and Enjoy:<a href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F" rel="nofollow" target="_blank"><img alt="Identi.ca" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/identica.png" title="Identi.ca"/></a><a href="http://twitter.com/home?status=The%20debate%20about%20foundations%20for%20open%20source%20projects%20-%20http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F" rel="nofollow" target="_blank"><img alt="Twitter" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/twitter.png" title="Twitter"/></a><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;source=%5D%5B+stefano+maffulli+about+open+source+and+freedom&amp;summary=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="LinkedIn" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/linkedin.png" title="LinkedIn"/></a><a href="http://www.fsdaily.com/submit?url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects" rel="nofollow" target="_blank"><img alt="FSDaily" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/fsdaily.png" title="FSDaily"/></a><a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;t=The%20debate%20about%20foundations%20for%20open%20source%20projects" rel="nofollow" target="_blank"><img alt="Facebook" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/facebook.png" title="Facebook"/></a><a href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;annotation=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="Google Bookmarks" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/googlebookmark.png" title="Google Bookmarks"/></a><a href="http://ping.fm/ref/?link=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;body=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="Ping.fm" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/ping.png" title="Ping.fm"/></a><a href="mailto:?subject=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;body=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F" rel="nofollow" target="_blank"><img alt="email" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/email_link.png" title="email"/></a><a href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;t=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;s=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="Tumblr" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/tumblr.png" title="Tumblr"/></a><a href="http://delicious.com/post?url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;notes=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="del.icio.us" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/delicious.png" title="del.icio.us"/></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects&amp;bodytext=Two%20interesting%20articles%20debating%20about%20foundations%20for%20open%20source%20projects.%20Mikeal%20Rogers%20argues%20that%20Apache%20Software%20Foundation%20has%20served%20its%20purpose%20in%20its%2012%20years%20and%20now%20is%20only%20preserving%20the%20problem%20to%20justify%20its%20existence.%0D%0ATen%20years%20ago%20" rel="nofollow" target="_blank"><img alt="Digg" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/digg.png" title="Digg"/></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects" rel="nofollow" target="_blank"><img alt="Reddit" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/reddit.png" title="Reddit"/></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmaffulli.net%2F2011%2F11%2F27%2Fthe-debate-about-foundations-for-open-source-projects%2F&amp;title=The%20debate%20about%20foundations%20for%20open%20source%20projects" rel="nofollow" target="_blank"><img alt="StumbleUpon" class="sociable-img sociable-hovers" src="http://maffulli.net/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" title="StumbleUpon"/></a><br/><br/><div style="float: right; margin-left: 5px;"><a class="twitter-share-button" href="http://twitter.com/share?url=http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/&amp;via=smaffulli&amp;text=The debate about foundations for open source projects&amp;related=:&amp;lang=en&amp;count=horizontal">Tweet</a>&lt;script src="http://platform.twitter.com/widgets.js" type="text/javascript"&gt;&lt;/script&gt;</div><div style="float: right; margin-left: 5px;"><a class="twitter-share-button" href="http://twitter.com/share?url=http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/&amp;via=smaffulli&amp;text=The debate about foundations for open source projects&amp;related=:&amp;lang=en&amp;count=horizontal">Tweet</a>&lt;script src="http://platform.twitter.com/widgets.js" type="text/javascript"&gt;&lt;/script&gt;</div> <img height="1" src="http://maffulli.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&amp;post_id=1852" style="display: none;" width="1"/><h2 class="related_post_title">Most Commented Posts</h2><ul class="related_post"><li><a href="http://maffulli.net/2007/12/21/dove-sono-finiti-i-fondi-per-il-software-libero/" title="Dove sono finiti i fondi per il Software Libero?">Dove sono finiti i fondi per il Software Libero?</a></li><li><a href="http://maffulli.net/2010/07/23/notes-to-develop-funambol-for-android-in-eclipse/" title="Notes to develop Funambol for Android in Eclipse">Notes to develop Funambol for Android in Eclipse</a></li><li><a href="http://maffulli.net/2007/09/18/the-end-of-a-phase/" title="The end of a phase">The end of a phase</a></li></ul><hr/>
<p><small>
Stef for <a href="http://maffulli.net">][ stefano maffulli</a>, 2011. |
<a href="http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/">Permalink</a> |
<a href="http://maffulli.net/2011/11/27/the-debate-about-foundations-for-open-source-projects/#comments">3 comments</a> 
<br/>
Post tags: <br/>
</small></p></div>
    </content>
    <updated>2011-11-27T17:44:27Z</updated>
    <category term="community"/>
    <category term="eng"/>
    <category term="Openstack"/>
    <author>
      <name>Stef</name>
    </author>
    <source>
      <id>http://maffulli.net</id>
      <link href="http://maffulli.net/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://maffulli.net" rel="alternate" type="text/html"/>
      <subtitle>about open source and freedom</subtitle>
      <title>][ stefano maffulli » Openstack</title>
      <updated>2012-02-19T18:00:37Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=784</id>
    <link href="http://fnords.wordpress.com/2011/11/25/improving-nova-privilege-escalation-model-part-2/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/25/improving-nova-privilege-escalation-model-part-2/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/25/improving-nova-privilege-escalation-model-part-2/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Improving Nova privilege escalation model, part 2</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">In the previous post in this series we explored the current privilege escalation model used in OpenStack Compute (Nova), and discussed its limitations. Now that we are able to plug an alternative model (thanks to the root_helper option), we’ll discuss in this post what features this one should have. If you think we need more, [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=784&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In the <a href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/" target="_blank">previous post in this series</a> we explored the current privilege escalation model used in OpenStack Compute (Nova), and discussed its limitations. Now that we are able to plug an alternative model (thanks to the <em>root_helper</em> option), we’ll discuss in this post what features this one should have. If you think we need more, please comment !</p>
<h4>Command filters</h4>
<p>The most significant issue with the current model is that <em>sudoers</em> filters the executable used, but not the arguments. To fix that, our alternative model should allow precise argument filtering so that only very specific commands are allowed. It should use lists of filters: if one matches, the command is executed.</p>
<p>The basic <em>CommandFilter</em> would just check that the executable name matches (which is what sudoers does). A more advanced <em>RegexpFilter</em> would check that the number of arguments is right and that they all match provided regular expressions.</p>
<p>Taking that concept a step further, you should be able to plug any type of advanced filter. You may want to check that the argument to the command is an existing directory. Or one that is owned by a specific user. The framework should allow developers to define their own <em>CommandFilter</em> subclasses, to be as precise as they want when filtering the most destructive commands.</p>
<h4>Running as</h4>
<p>In some cases, Nova runs, as <em>root</em>, commands that it should just run as a different user. For example, it runs <em>kill</em> with <em>root</em> rights to interact with <em>dnsmasq</em> processes (owned by the <em>nobody</em> user). It doesn’t really need to run <em>kill</em> with <em>root</em> rights at all. Filters should therefore also allow to specify a lower-privileged user a specific matching command should run under.</p>
<h4>Shipping filters in Nova code</h4>
<p>Filter lists should live within Nova code and be deployed by packaging, rather than live in packaging. That allows people adding a new escalated command to add the corresponding filter in the same commit.</p>
<h4>Limiting commands based on deployed nodes</h4>
<p>As mentioned in the <a href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/" target="_blank">previous post</a>, <em>nova-api</em> nodes don’t actually need to run any command as <em>root</em>, but in the current model their <em>nova</em> user is still allowed to run plenty of them. The solution for that is to separate the command filters based on the type of node that is allowed to run them, in different files. Then deploy the <em>nova-compute</em> filters file only on <em>nova-compute</em> nodes, the <em>nova-volume</em> filters file only on <em>nova-volume</em> nodes… A pure <em>nova-api</em> node will end up with no filters being deployed at all, effectively not being allowed any command as root. So this can be solved by smart packaging of filter files.</p>
<h4>Missing features ?</h4>
<p>Those are the features that I found useful for our alternative privilege escalation model. If you see others, please comment here ! I’d like to make sure all the useful features are included. In the next post, we’ll discuss a proposed Python implementation of this framework, and the challenges around securing it.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/784/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/784/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/784/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=784&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2011-11-25T11:00:45Z</updated>
    <published>2011-11-25T11:00:45Z</published>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.chmouel.com/?p=472</id>
    <link href="http://blog.chmouel.com/2011/11/24/swift-and-keystone-middleware-part1/" rel="alternate" type="text/html"/>
    <title>Swift and Keystone middleware – Part1</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It seems that integrating Swift and Keystone together present some challenges to people and this is absolutely normal as there is a lot of changes going on. This is my attempt to document how everything is plugged together. I am … <a href="http://blog.chmouel.com/2011/11/24/swift-and-keystone-middleware-part1/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>It seems that integrating <a href="http://swift.openstack.org/" target="_blank">Swift</a> and <a href="http://keystone.openstack.org/" target="_blank">Keystone</a> together present some challenges to people and this is absolutely normal as there is a lot of changes going on. This is my attempt to document how everything is plugged together.</p>
<p>I am not going to explain how a middleware is supposed to work as this is nicely documented on Wikipedia :</p>
<p><a href="http://en.wikipedia.org/wiki/Middleware" target="_blank">http://en.wikipedia.org/wiki/Middleware</a></p>
<p>or how the auth middlewares works on Swift :</p>
<p><a href="http://swift.openstack.org/development_auth.html" target="_blank">http://swift.openstack.org/development_auth.html<br/>
</a><br/>
or even how this is plugged inside Keystone :</p>
<p><a href="http://keystone.openstack.org/middleware_architecture.html" target="_blank">http://keystone.openstack.org/middleware_architecture.html<br/>
</a></p>
<p>At first let’s get some of the wordings right :</p>
<ul>
<li>A <strong>tenant</strong> in keystone is an <strong>account</strong> in swift.</li>
<li>A <strong>user</strong> in keystone is also a <strong>user</strong> in swift.</li>
<li>A <strong>role</strong> in keystone is a <strong>group</strong> in swift.</li>
</ul>
<p>Now that you keep this in mind let’s walk-though how a request will<br/>
look like.</p>
<p>At first your user connect to keystone and says this is my username for this<br/>
tenant and here is the secret/api key, give me the endpoints for the<br/>
services and add a token to it. This will look like this in curl :</p>

<div class="wp_codebox"><table><tbody><tr id="p4728"><td class="code" id="p472code8"><pre class="bash" style="font-family: monospace;">curl <span style="color: #660033;">-s</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">'{"auth": {"tenantName": "demo", "passwordCredentials": {"username": "demo", "password": "password"}}}'</span> <span style="color: #660033;">-H</span> <span style="color: #ff0000;">'Content-type: application/json'</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">5000</span><span style="color: #000000; font-weight: bold;">/</span>v2.0<span style="color: #000000; font-weight: bold;">/</span>tokens</pre></td></tr></tbody></table></div>

<p>If successfully authenticated you get back in Json those public/internal urls<br/>
for swift so you are able to connect, here is some part of the replied request :</p>
<pre>{
    "endpoints": [
        {
            "adminURL": "http://localhost:8080/",
            "internalURL": "http://localhost:8080/v1/AUTH_2",
            "publicURL": "http://localhost:8080/v1/AUTH_2",
            "region": "RegionOne"
        }
    ],
    "name": "swift",
    "type": "object-store"
}
[...]
"token": {
    "expires": "2011-11-24T12:35:56",
    "id": "ea29dae7-4c54-4e80-98e1-9f886acb389a",
    "tenant": {
        "id": "2",
        "name": "demo"
    }
},</pre>
<p>So now the clients is going to get the publicURL (or can be internal) with the token and able to give request to swift with it. Let’s take the simple request which list the container,  this is a basic GET on the account :</p>

<div class="wp_codebox"><table><tbody><tr id="p4729"><td class="code" id="p472code9"><pre class="bash" style="font-family: monospace;">curl <span style="color: #660033;">-v</span> <span style="color: #660033;">-H</span> <span style="color: #ff0000;">'X-Auth-Token: ea29dae7-4c54-4e80-98e1-9f886acb389a'</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">8080</span><span style="color: #000000; font-weight: bold;">/</span>v1<span style="color: #000000; font-weight: bold;">/</span>AUTH_2</pre></td></tr></tbody></table></div>

<p>which should come back by a 20* http code if that work.</p>
<p>What’s happening here is that when you connect to swift it will pass it to the middleware to make sure we are able to have access with that token.</p>
<p>The middleware will take that token connect to keystone admin url with the admin token and pass that user token to be validated. The query looks like this in curl :</p>

<div class="wp_codebox"><table><tbody><tr id="p47210"><td class="code" id="p472code10"><pre class="bash" style="font-family: monospace;">curl <span style="color: #660033;">-H</span> <span style="color: #ff0000;">'X-Auth-Token: 7XX'</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">35357</span><span style="color: #000000; font-weight: bold;">/</span>v2.0<span style="color: #000000; font-weight: bold;">/</span>tokens<span style="color: #000000; font-weight: bold;">/</span>ea29dae7-4c54-4e80-98e1-9f886acb389a</pre></td></tr></tbody></table></div>

<p><em><strong>note</strong>: localhost:35357 is the keystone admin url and 7XX is the admin token set in the configuration of the middleware.</em></p>
<p>if successful keystone will come back with a reply that look like this :</p>

<div class="wp_codebox"><table><tbody><tr id="p47211"><td class="code" id="p472code11"><pre class="javascript" style="font-family: monospace;"><span style="color: #009900;">{</span>
    <span style="color: #3366CC;">"access"</span><span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
        <span style="color: #3366CC;">"token"</span><span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
            <span style="color: #3366CC;">"expires"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2011-11-24T12:35:56"</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">"id"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"ea29dae7-4c54-4e80-98e1-9f886acb389a"</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">"tenant"</span><span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
                <span style="color: #3366CC;">"id"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2"</span><span style="color: #339933;">,</span>
                <span style="color: #3366CC;">"name"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"demo"</span>
            <span style="color: #009900;">}</span>
        <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">"user"</span><span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
            <span style="color: #3366CC;">"id"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2"</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">"roles"</span><span style="color: #339933;">:</span> <span style="color: #009900;">[</span>
                <span style="color: #009900;">{</span>
                    <span style="color: #3366CC;">"id"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2"</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">"name"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"Member"</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">"tenantId"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2"</span>
                <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
                <span style="color: #009900;">{</span>
                    <span style="color: #3366CC;">"id"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"5"</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">"name"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"SwiftOperator"</span><span style="color: #339933;">,</span>
                    <span style="color: #3366CC;">"tenantId"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"2"</span>
                <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">]</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">"username"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"demo"</span>
        <span style="color: #009900;">}</span>
    <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span></pre></td></tr></tbody></table></div>

<p>Let’s step back before more Curl command and understand a thing about Swift, a user of an account in Swift by default don’t have any rights at all but there is one user in that account  whose able to give ACL on containers for other users. In swift keystone middleware we call it an Operator.</p>
<p>The way the middleware knows which user is able to be admin on an account is by using the roles matching to whatever configuration we have on the middleware setting called :</p>
<pre>keystone_swift_operator_roles = Admin, SwiftOperator</pre>
<p>since this user is part the SwiftOperator then it has access and he’s allowed to do whatever he wants for that account like creating containers or giving ACL to other users.</p>
<p>So let’s say we have a user called demo2 which is part of the demo account and have only the role Member to it and not SwiftOperator by default as we say before he will not be able to do much.</p>
<p>But if demo user give access to the group/role Memeber to a container via acl then demo2 will be able to do stuff on it.</p>
<p>We can all have fun with bunch of curl commands but since swift 1.4.7 the swift CLI tool have support for the auth server version 2.0 and allow you to connect to keystone for auth so we are going to use that instead.</p>
<p>Let first create a testcontainer and upload a file into it with our ‘operator’ user :</p>

<div class="wp_codebox"><table><tbody><tr id="p47212"><td class="code" id="p472code12"><pre class="bash" style="font-family: monospace;">swift <span style="color: #660033;">--auth-version</span> <span style="color: #000000;">2</span> <span style="color: #660033;">-A</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">5000</span><span style="color: #000000; font-weight: bold;">/</span>v2.0 <span style="color: #660033;">-U</span> demo:demo <span style="color: #660033;">-K</span> password post testcontainer</pre></td></tr></tbody></table></div>

<p>now let’s give access to the Member group for that container on reading :</p>

<div class="wp_codebox"><table><tbody><tr id="p47213"><td class="code" id="p472code13"><pre class="bash" style="font-family: monospace;">swift <span style="color: #660033;">--auth-version</span> <span style="color: #000000;">2</span> <span style="color: #660033;">-A</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">5000</span><span style="color: #000000; font-weight: bold;">/</span>v2.0 <span style="color: #660033;">-U</span> demo:demo <span style="color: #660033;">-K</span> password post testcontainer <span style="color: #660033;">-r</span> Member</pre></td></tr></tbody></table></div>

<p>and now if we try to read that file directly with demo2 it will be allowed :</p>

<div class="wp_codebox"><table><tbody><tr id="p47214"><td class="code" id="p472code14"><pre class="bash" style="font-family: monospace;">swift <span style="color: #660033;">--auth-version</span> <span style="color: #000000;">2</span> <span style="color: #660033;">-A</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">5000</span><span style="color: #000000; font-weight: bold;">/</span>v2.0 <span style="color: #660033;">-U</span> demo:demo2 <span style="color: #660033;">-K</span> password download testcontainer etc<span style="color: #000000; font-weight: bold;">/</span>issue <span style="color: #660033;">-o-</span></pre></td></tr></tbody></table></div>

<p>Hope this make things a bit more clears how everything works, in the next part I am going to explain how the config files and packages will look like for installing keystone and swift.</p></div>
    </content>
    <updated>2011-11-24T09:20:39Z</updated>
    <category term="Openstack"/>
    <author>
      <name>chmouel</name>
    </author>
    <source>
      <id>http://blog.chmouel.com</id>
      <link href="http://blog.chmouel.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.chmouel.com" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle>Random and probably boring stuff.</subtitle>
      <title>Chmouel's Blog » Openstack</title>
      <updated>2012-02-06T10:20:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://fnords.wordpress.com/?p=772</id>
    <link href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/" rel="alternate" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/#comments" rel="replies" type="text/html"/>
    <link href="http://fnords.wordpress.com/2011/11/23/improving-nova-privilege-escalation-model-part-1/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Improving Nova privilege escalation model, part 1</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">In this series, I’ll discuss how to strengthen the privilege escalation model for OpenStack Compute (Nova). Due to the way networking, virtualization and volume management work, some Nova nodes need to be able to run some commands as root. To reduce the effects of a potential compromise (attacker being able to run arbitrary code as [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=772&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>In this series, I’ll discuss how to strengthen the privilege escalation model for OpenStack Compute (Nova). Due to the way networking, virtualization and volume management work, some Nova nodes need to be able to run some commands as root. To reduce the effects of a potential compromise (attacker being able to run arbitrary code as the Nova user), we want to limit the commands that Nova can run as root on a given node to the strict necessary. Today we’ll explain how the current model works, its limitations, and the groundwork already implemented during the Diablo cycle to improve that.</p>
<h4>Current model: sudo and sudoers</h4>
<p>Currently, in a typical Nova deployment, the nodes run under an account with limited rights (usually called “nova”). When Nova needs to run a command as root, it prepends “sudo” to the command. The nova packages of your distribution of choice are supposed to ship a <strong>sudoers</strong> file that contains all the commands that nova is allowed to run as root without providing a password. This is a privilege escalation security model which is pretty well-known and easy to audit.</p>
<h4>Limitations of the current model</h4>
<p>That said, in the context of Nova, this model is very limited. The sudoers file does not allow to efficiently filter arguments, so you can basically pass any argument to the allowed command… and some of the commands that nova wants to use are rather open-ended. As an example, the current nova_sudoers file contains commands like <em>chown</em>, <em>kill</em>, <em>dd</em> or <em>tee</em>, which are more than enough to compromise a target system completely.</p>
<p>There are a couple other limitations.  The sudoers file belongs to the distributions packaging, so it’s difficult to keep it in sync with the rest of Nova code when someone wants to add a privileged command. Last but not least, the same nova_sudoers file is used for any type of Nova node. A Nova API server, which does not <em>need</em> to run any command as root, is still allowed to run all the commands that a compute node requires, for example. Those other limitations could be fixed while still using sudo and sudoers files, but the first limitation would remain. Can we do better ?</p>
<h4>Substitute a wrapper to sudo</h4>
<p>To be able to propose alternative privilege escalation security models, we first needed to be able to change all the “sudo” calls in the code and make them potentially use something else. That’s <a href="https://blueprints.launchpad.net/nova/+spec/refactor-privesc" target="_blank">what I worked on</a> late during the Diablo timeframe: creating a <em>run_as_root</em> option in nova.utils.execute that would use a configurable <strong>root_helper</strong> command (by default, “sudo”), and force all the existing calls to go through that (rather than blindly calling “sudo” themselves).</p>
<p>Thanks to the default root_helper, everything still behaves the same, but now we have the possibility to use <em>something else</em>, if we can be smarter than sudoers files. Like call a wrapper that will do advanced filtering of the command that nova wants to use. In part 2 of this series, we’ll look into a proposed, alternative Python-based root_helper and open discussion on its security model.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/godelicious/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/gofacebook/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/gotwitter/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/gostumble/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/godigg/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/fnords.wordpress.com/772/"/></a> <a href="http://feeds.wordpress.com/1.0/goreddit/fnords.wordpress.com/772/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/fnords.wordpress.com/772/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=fnords.wordpress.com&amp;blog=6252617&amp;post=772&amp;subd=fnords&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2011-11-23T16:31:24Z</updated>
    <published>2011-11-23T16:31:24Z</published>
    <category scheme="http://fnords.wordpress.com" term="Openstack"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu"/>
    <category scheme="http://fnords.wordpress.com" term="Ubuntu Server"/>
    <author>
      <name>Thierry Carrez</name>
    </author>
    <source>
      <id>http://fnords.wordpress.com/feed/atom/</id>
      <link href="http://fnords.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://fnords.wordpress.com/category/openstack/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://fnords.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://fnords.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">Truth lies between the code lines</subtitle>
      <title xml:lang="en">Seeing the fnords » Openstack</title>
      <updated>2012-02-22T10:44:58Z</updated>
    </source>
  </entry>
</feed>

