<br><br><div class="gmail_quote">On Wed, Jun 6, 2012 at 10:58 AM, Mark McLoughlin <span dir="ltr"><<a href="mailto:markmc@redhat.com" target="_blank">markmc@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, 2012-06-05 at 17:25 -0400, Mark Washenberger wrote:<br>
><br>
> "Mark McLoughlin" <<a href="mailto:markmc@redhat.com">markmc@redhat.com</a>> said:<br>
><br>
> > On Tue, 2012-06-05 at 12:21 -0400, Mark Washenberger wrote:<br>
> >> > <a href="http://wiki.openstack.org/CommonLibrary#Incubation" target="_blank">http://wiki.openstack.org/CommonLibrary#Incubation</a><br>
> >><br>
> >> Once an api is in incubation, if you make a change to it, you are<br>
> >> expected to update all the other openstack projects (not just core<br>
> >> projects?) to make them work with the new api. Am I understanding this<br>
> >> requirement correctly?<br>
> ><br>
> > Yes, pretty much.<br>
<br>
</div>I should clarify this - I don't think someone improving an API in<br>
openstack-common absolutely must update all projects that use it, but I<br>
think he/she often will update the major users to make sure the new API<br>
works.<br>
<br>
But the reality is that projects which use openstack-common need to be<br>
prepared that someday they might re-sync with latest openstack-common<br>
using update.py and find the API has changed.<br>
<div><div class="h5"><br>
> > The alternative is that you don't make backwards<br>
> > incompatible API changes.<br>
><br>
> ...<br>
><br>
> ><br>
> > What alternative strategy are you suggesting? That if glance, quantum,<br>
> > cinder and ceilometer want to re-use Nova's RPC code, they should<br>
> > copy-and-paste it and hack it to their needs?<br>
><br>
> I don't think our only options here are immediate adoption and relative<br>
> chaos.<br>
><br>
> Here's what I would like to see:<br>
><br>
> Quantum, cinder, and ceilometer get together, recognize a shared need<br>
> for rpc, acknowledge the successes and failures of the nova.rpc library,<br>
> and create a better implementation with eventual adoption by Nova kept<br>
> in mind.<br>
><br>
> Doesn't that sound better? This approach seems much nicer to me,<br>
> because I believe that code reuse is likely to be detrimental unless<br>
> the code we're talking about was created with reuse and generality<br>
> in mind. Since I find that suggestion implausible regarding nova.rpc<br>
> in particular, I think we will do better overall avoiding its wider<br>
> adoption.<br>
><br>
> Please, forgive me if I'm being drawn in falsely by the allure of better<br>
> code. Code structure and quality *is* something I obsess about. But I<br>
> appreciate the need to be practical in the short term as well, if I am<br>
> not always the best at articulating it. The agreement from various<br>
> quarters about the problems with the current nova.rpc gave me hope<br>
> that we could craft a better rpc library without too much delay, even<br>
> if I myself can only contribute in a small way to that effort.<br>
<br>
</div></div>I think the summary is that you'd like (someone else?) to start from<br>
scratch on a new RPC API in openstack-common, whereas Russell has gone<br>
for the approach of taking Nova's RPC API and improving it iteratively.<br>
<br>
In the absence of someone appearing with that new idealised RPC API, I<br>
think it's reasonable for Russell to proceed with his approach.<br></blockquote><div><br></div><div>Yes, please, keep going! We're too close now to stop now. I do have some enhancements to propose, but I think I can make them in a backwards compatible way once the existing code is in the common lib.</div>
<div><br></div><div>Ceilometer is currently importing bits we need either directly from nova or openstack-common (by "importing" I mean literally using the "import" statement in our code, not copying the required modules into the ceilometer code base). I was under the impression that this is how we wanted (new) projects to use openstack-common, but maybe I misunderstood? Should we be planning to copy code out of openstack-common into the ceilometer repository?</div>
<div><br></div><div>Doug</div></div>