[openstack-dev] [Nova] Concrete Proposal for Keeping V2 API

Kenichi Oomichi oomichi at mxs.nes.nec.co.jp
Tue Mar 4 00:56:21 UTC 2014

> -----Original Message-----
> From: Russell Bryant [mailto:rbryant at redhat.com]
> Sent: Tuesday, March 04, 2014 7:31 AM
> To: openstack-dev at lists.openstack.org
> Subject: Re: [openstack-dev] [Nova] Concrete Proposal for Keeping V2 API
> On 03/03/2014 04:25 PM, Vishvananda Ishaya wrote:
> > This seems like a reasonable and well thought out approach but It
> > feels like we are removing our ability to innovate.
> I think part of this exercise is trying to think through what freedom
> we *would* have to innovate in v2 with a set of changes to code an
> policy.  That's what most of the proposal is about.  If we still don't
> have the freedom we need, that's a problem and is what we need to
> figure out before this s final.
> Are there particular cases that you feel are missing in a v2 world
> described by the proposal?
> > I’m worried that this is just delaying solving the inconsistency
> > issues to some future date.
> It depends which consistency issues you're talking about.  Many of
> them I think we can fix today.  Others the argument being made is that
> they just aren't nearly important enough to fix yet unless they're
> coming with a completely new API.
> Which inconsistencies are you concerned about in particular?  What did
> we miss in the proposal or which part specifically do you disagree with?

I guess it is an issue about "Naming Consistency".

I can see the proposal, but I feel now it is a little early decision because
we have 2 months before the next summit and can investigate how to keep the
maintenance cost low.

First of all, I feel the big issue of v3 API is backward incompatibility
changes for "Naming Consistency" since v2 API.
That is very important point and we should maintain both APIs in long time,
because users may use current API over 2 years at least. (from Joe and Thomas
mails, thanks)

As one possible solution, Thierry and Alex said v2.1 API.
In v2.1 API, backward incompatibility issues related to "Naming Consistency"
would not happen. API names(URLs, API attributes) would not be changed since
current v2 API. Instead, the other features of v3(API extension customizability,
strong input validation, code clean) are enabled.
I created a prototype(https://review.openstack.org/#/c/77105/) for doing it.
That translates a request of v2 format to one of v3 and passes it to v3 API
method. After API method operation, it translates the response to v2 format
again. That seems not so difficult, and we just need to contain the gap between
v2 and v3 in Nova tree. If going forward with v2.1 API, I feel we will be able
to remove current v2 API code because we will have backward compatible API.

I think nobody believes current v2 API is better than v3 API. The main matter
is the maintenance cost. So again, I feel it is better to clarify what is the
concerned maintenance cost.

After clarifying the cost, we can think how to reduce it. Possibly, that would
be a latent issue of API development of not only v3 but also current v2.
There is not any issue we can not solve :-)

Ken'ichi Ohmichi

More information about the OpenStack-dev mailing list