[openstack-dev] Your suggestions in the BP

Stephen Balukoff sbalukoff at bluebox.net
Mon Jun 2 21:22:55 UTC 2014


Hi ya'll!

Comments inline:


On Sun, Jun 1, 2014 at 1:09 PM, Brandon Logan <brandon.logan at rackspace.com>
wrote:

> Hi Eugene and Sam,
>
> On Sun, 2014-06-01 at 12:07 +0400, Eugene Nikanorov wrote:
> > Hi Sam,
> >
> >         Eugene, please comment on the migration process bellow.
> >
> >         I think that closing down the "status" handling should be done
> >         in phase 1.
> > I don't mind. If you're talking about provisioning status then such
> > status (if we're still going to maintain it per each kind of object)
> > goes to various associations: loadbalancer-listener, or
> > loadbalancer-listener-pool, etc.
> > Not a big deal of course, it was just my initial intent to limit phase
> > #1 as much as possible.
>
> I was hoping to limit it as well to keep it focused on just the
> refactoring portion.  I didn't want the scope to include all new
> features and changes under the sun.  It also makes reviewing much
> simpler.
>

I'm OK with limiting scope here so long as we don't implement something
that is effectively "forward compatible" with whatever we will probably
want to do in the future. (So, having a discussion around this is probably
worthwhile.)  To phrase this another way, what consumes the 'status'
information, and what do they really want to know?


>
> >
> >
> >         Missing to do so, will create tests and other depending
> >         workflows that assume the "current" status field, which will
> >         add  a technology debt to this new code.
> > I'd say it would depend on the strategy options you're suggestion
> > below.
> > As far as bw compatibility is concerned (if it's concerned at all), we
> > have to support existing status field, so that would not be any
> > additional debt.
> >
> >
> >         Migration and co-existence:
> >         I think that it would be better to have the new object model
> >         and API done in a way that does not "break" existing code, and
> >         then switch the "old" api to redirect to the "new" api.
> > Basically this means creating another lbaas plugin, that expose
> > existing lbaas api extension.
> > I'm not sure how this can be done considering the difference between
> > new proposed api and existing api.
> >
> >         This might be done in one of the two ways bellow:
> >         1. Rename all objects in the "new" api so you have a clear
> >         demarcation point. This might be sufficient.
> > I'm not sure how this could be done, can you explain?
> > I actually would consider changing the prefix to /v3/ to not to deal
> > with any renamings, that would require some minor refactoring on
> > extension framework side.
> His suggestion in the BP was to rename pool, healthmonitor, and member
> to group, healthcheck, and node respectively.  Since loadbalancer and
> listener are already new those don't have to be renamed.  This way the
> old object models and db tables remain intact and the old API can still
> function as before.
> >
> >         2. Copy the existing LBaaS "extension" and create a
> >         "new-lbaas" extension with new object names, then create a
> >         "new old lbaas" extension that has the "old API" but redirect
> >         to the "new API"
> > I also don't fully understand this, please explain.
> I need more clarification on this as well.  Sounds like you're saying to
> create a lbaas extension v2 with the new object names.  Then copy the
> existing lbaas extension and change it to redirect to the v2 extension.
> If that is the case, why create a "new old lbaas" and just change the
> "old lbaas" extension?
> >
> >
> >
> >         Doing 2, can allow "co-existence" of old code with old drivers
> >         until new code with new drivers can take its place.
> > New extension + new plugin, is that what you are suggesting? To me it
> > would be the cleanest and the most simple way to execute the
> > transition, but... i'm not sure it was a consensus on design session.
>
> I agree this would be the cleanest but I was under the impression this
> was not an accepted way to go.  I'd honestly prefer a v2 extension and
> v2 plugin.  This would require different names for the object model and
> db tables since you don't want the old api and new api sharing the same
> tables.  We can either append v2 to the names or rename them entirely.
> Sam suggested group for pool, healthcheck for healthmonitor, and node
> for member.  I'd prefer nodepool for pool myself.
>

nodepool isn't a bad name, eh. To throw this into the pot, too: How about
'backend' for the renamed pool (or does that imply too much)?


>
> Either way, I need to know if we can go with this route or not.  I've
> started on writing the code a bit but relationship conversations has
> stalled that some.  I think if we can go with this route it will make
> the code much more clear.
>
> Thanks,
> Brandon
>
>
Yep, knowing this is going to be key to where we need to put engineering
time into this, eh.

Stephen


-- 
Stephen Balukoff
Blue Box Group, LLC
(800)613-4305 x807
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140602/b0f2b666/attachment.html>


More information about the OpenStack-dev mailing list