Can't wait for openstack-common to be usable for Quantum as well.  Here is our write-up of code in Quantum that seems generic (and is likely "borrowed" from other openstack project): <a href="http://wiki.openstack.org/QuantumOpenstackCommon">http://wiki.openstack.org/QuantumOpenstackCommon</a> <div>

<br></div><div>Would love to get much of this into openstack-common.</div><div><br></div><div>Dan</div><div><br></div><div><br><div class="gmail_quote">On Thu, Jan 26, 2012 at 10:58 AM, Joshua Harlow <span dir="ltr"><<a href="mailto:harlowja@yahoo-inc.com">harlowja@yahoo-inc.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>
<font face="Calibri, Verdana, Helvetica, Arial"><span style="font-size:11pt">Yippe common code that people can share! Win!<div><div class="h5"><br>
<br>
On 1/26/12 8:32 AM, "Mark McLoughlin" <<a href="http://markmc@redhat.com" target="_blank">markmc@redhat.com</a>> wrote:<br>
<br>
</div></div></span></font><div><div class="h5"><blockquote><font face="Calibri, Verdana, Helvetica, Arial"><span style="font-size:11pt">Hey,<br>
<br>
On Tue, 2012-01-03 at 16:57 +0000, Mark McLoughlin wrote:<br>
<br>
> The openstack-common project intends to produce a python library containing<br>
> infrastructure code shared by OpenStack projects. The APIs provided by the<br>
> project should be high quality, stable, consistent and generally useful.<br>
<br>
Jason and I have come up with a bit of a compromise on this front:<br>
<br>
  <a href="http://wiki.openstack.org/CommonLibrary#Incubation" target="_blank">http://wiki.openstack.org/CommonLibrary#Incubation</a><br>
<br>
I've appended the text below. We've started with melange:<br>
<br>
  <a href="http://review.openstack.org/3465" target="_blank">http://review.openstack.org/3465</a><br>
<br>
While we still think that we should be able to make API compat<br>
guarantees about the openstack-common library, there needs to be a<br>
stepping stone for new APIs which are shared between multiple projects<br>
but aren't yet up to criteria required for inclusion in the library.<br>
<br>
This is still evil copy-and-paste, but it's managed evilness :-)<br>
<br>
Thanks,<br>
Mark.<br>
<br>
== Incubation ==<br>
<br>
openstack-common also provides a process for incubating APIs which,<br>
while they are shared between multiple OpenStack projects, have not yet<br>
matured to meet the criteria described above.<br>
<br>
APIs which are incubating can be copied into individual openstack<br>
projects from openstack-common using the {{{update.py}}} script<br>
provided. An {{{openstack-common.conf}}} configuration file in the<br>
project describes which modules to copy and where they should be copied<br>
to e.g.<br>
<br>
  $> git clone .../melange<br>
  $> cd melange<br>
  $> cat openstack-common.conf<br>
  [DEFAULT]<br>
<br>
  # The list of modules to copy from openstack-common<br>
  modules=config,exception,extensions,utils,wsgi<br>
<br>
  # The base module to hold the copy of openstack.common<br>
  base=melange<br>
<br>
and then, to copy the code across:<br>
<br>
  $> cd ../<br>
  $> git clone .../openstack-common<br>
  $> cd openstack-common<br>
  $> python update.py ../melange<br>
  Copying the config,exception,extensions,utils,wsgi modules under the melange module in ../melange<br>
<br>
Projects which are using such incubating APIs must avoid ever modifying<br>
their copies of the code. All changes should be made in openstack-common<br>
itself and copied into the project.<br>
<br>
Developers making changes to incubating APIs in openstack-common must be<br>
prepared to update the copies in the projects which have previously<br>
imported the code.<br>
<br>
Incubation shouldn't be seen as a long term option for any API - it is<br>
merely a stepping stone to inclusion into the openstack-common library<br>
proper.<br>
<br>
<br>
_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="http://openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br>
</span></font></blockquote>
</div></div></div>


<br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>Dan Wendlandt <div>Nicira Networks: <a href="http://www.nicira.com" target="_blank">www.nicira.com</a><br><div>twitter: danwendlandt<br>

~~~~~~~~~~~~~~~~~~~~~~~~~~~<br></div></div><br>
</div>