[openstack-dev] [Nova] Some ideas for micro-version implementation

Christopher Yeoh cbkyeoh at gmail.com
Thu Sep 25 02:58:47 UTC 2014


On Wed, 24 Sep 2014 09:04:51 -0400
Jay Pipes <jaypipes at gmail.com> wrote:

> On 09/24/2014 05:26 AM, Kenichi Oomichi wrote:
> >> -----Original Message-----
> >> From: Jay Pipes [mailto:jaypipes at gmail.com]
> >> Sent: Wednesday, September 24, 2014 12:47 AM
> >> To: openstack-dev at lists.openstack.org
> >> Subject: Re: [openstack-dev] [Nova] Some ideas for micro-version
> >> implementation
> >>
> >> On 09/22/2014 04:27 PM, Brant Knudson wrote:
> >>> On Fri, Sep 19, 2014 at 1:39 AM, Alex Xu <xuhj at linux.vnet.ibm.com
> >>> <mailto:xuhj at linux.vnet.ibm.com>> wrote:
> >>>
> >>>      Close to Kilo, it is time to think about what's next for
> >>> nova API. In Kilo, we
> >>>      will continue develop the important feature micro-version.
> >>>
> >>>      In previous v2 on v3 propose, it's include some
> >>> implementations can be used for micro-version.
> >>>      (https://review.openstack.org/__#/c/84695/19/specs/juno/v2-on-__v3-api.rst
> >>>      <https://review.openstack.org/#/c/84695/19/specs/juno/v2-on-v3-api.rst>)
> >>>      But finally, those implementations was considered too
> >>> complex.
> >>>
> >>>      So I'm try to find out more simple implementation and
> >>> solution for micro-version.
> >>>
> >>>      I wrote down some ideas as blog post at:
> >>>      http://soulxu.github.io/blog/__2014/09/12/one-option-for-__nova-api/
> >>>      <http://soulxu.github.io/blog/2014/09/12/one-option-for-nova-api/>
> >>>
> >>>      And for those ideas also already done some POC, you can find
> >>> out in the blog post.
> >>>
> >>>      As discussion in the Nova API meeting, we want to bring it
> >>> up to mail-list to
> >>>      discussion. Hope we can get more idea and option from all
> >>> developers.
> >>>
> >>>      We will appreciate for any comment and suggestion!
> >>>
> >>>      Thanks
> >>>      Alex
> >>>
> >>>
> >>>
> >>> Did you consider JSON Home[1] for this? For Juno we've got JSON
> >>> Home support in Keystone for Identity v3 (Zaqar was using it
> >>> already). We weren't planning to use it for microversioning since
> >>> we weren't planning on doing microversioning, but I think JSON
> >>> Home could be used for this purpose.
> >>>
> >>> Using JSON Home, you'd have relationships that include the
> >>> version, then the client can check the JSON Home document to see
> >>> if the server has support for the relationship the client wants
> >>> to use.
> >>>
> >>> [1] http://tools.ietf.org/html/draft-nottingham-json-home-03
> >>
> >> ++ I used JSON-Home extensively in the Compute API blueprint I put
> >> together a few months ago:
> >>
> >> http://docs.oscomputevnext.apiary.io/
> >
> > vNext seems an interesting idea, I thought the implementation way
> > for Nova a little. "API Route Discoverability" is a nice design,
> > but a root "/" URL will conflict on current "list versions" API.
> > Maybe there would be a workaround.
> 
> Completely agreed, Ken'ichi. The "root" URL that returns the
> JSON-Home doc in the vNext API is actually *after* the version in the
> URI, though...
> 
> So, the JSON-Home doc would be returned from:
> 
>   http://compute.example.com/vNext/
> 
> Of course, replacing "vNext" with "v4" or "v42" or whatever the
> "next" major version of the API would be. The real root would still
> return the versions list as it exists today, with a 302 Multiple
> Choice.

Why have a version in the url at all? With microversions it doesn't
really make any sense and would just cause more churn for app
developers.

Chris



More information about the OpenStack-dev mailing list