openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #12857
Re: cfg usage - option registration, global objects
On Wed, Jun 6, 2012 at 10:58 AM, Mark McLoughlin <markmc@xxxxxxxxxx> wrote:
> On Tue, 2012-06-05 at 17:25 -0400, Mark Washenberger wrote:
> >
> > "Mark McLoughlin" <markmc@xxxxxxxxxx> said:
> >
> > > On Tue, 2012-06-05 at 12:21 -0400, Mark Washenberger wrote:
> > >> > http://wiki.openstack.org/CommonLibrary#Incubation
> > >>
> > >> Once an api is in incubation, if you make a change to it, you are
> > >> expected to update all the other openstack projects (not just core
> > >> projects?) to make them work with the new api. Am I understanding this
> > >> requirement correctly?
> > >
> > > Yes, pretty much.
>
> I should clarify this - I don't think someone improving an API in
> openstack-common absolutely must update all projects that use it, but I
> think he/she often will update the major users to make sure the new API
> works.
>
> But the reality is that projects which use openstack-common need to be
> prepared that someday they might re-sync with latest openstack-common
> using update.py and find the API has changed.
>
> > > The alternative is that you don't make backwards
> > > incompatible API changes.
> >
> > ...
> >
> > >
> > > What alternative strategy are you suggesting? That if glance, quantum,
> > > cinder and ceilometer want to re-use Nova's RPC code, they should
> > > copy-and-paste it and hack it to their needs?
> >
> > I don't think our only options here are immediate adoption and relative
> > chaos.
> >
> > Here's what I would like to see:
> >
> > Quantum, cinder, and ceilometer get together, recognize a shared need
> > for rpc, acknowledge the successes and failures of the nova.rpc library,
> > and create a better implementation with eventual adoption by Nova kept
> > in mind.
> >
> > Doesn't that sound better? This approach seems much nicer to me,
> > because I believe that code reuse is likely to be detrimental unless
> > the code we're talking about was created with reuse and generality
> > in mind. Since I find that suggestion implausible regarding nova.rpc
> > in particular, I think we will do better overall avoiding its wider
> > adoption.
> >
> > Please, forgive me if I'm being drawn in falsely by the allure of better
> > code. Code structure and quality *is* something I obsess about. But I
> > appreciate the need to be practical in the short term as well, if I am
> > not always the best at articulating it. The agreement from various
> > quarters about the problems with the current nova.rpc gave me hope
> > that we could craft a better rpc library without too much delay, even
> > if I myself can only contribute in a small way to that effort.
>
> I think the summary is that you'd like (someone else?) to start from
> scratch on a new RPC API in openstack-common, whereas Russell has gone
> for the approach of taking Nova's RPC API and improving it iteratively.
>
> In the absence of someone appearing with that new idealised RPC API, I
> think it's reasonable for Russell to proceed with his approach.
>
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.
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?
Doug
Follow ups
References