[openstack-dev] [python-novaclient][nova] future of --os-compute-api-version option and whole api versioning

Christopher Yeoh cbkyeoh at gmail.com
Mon Feb 2 11:43:14 UTC 2015


On Sat, Jan 31, 2015 at 4:09 AM, Andrey Kurilin <akurilin at mirantis.com>
wrote:

> Thanks for the answer. Can I help with implementation of novaclient part?
>

Sure! Do you think its something you can get proposed into Gerrit by the
end of the week or very soon after?
Its the sort of timeframe we're looking for to get microversions enabled
asap.... I guess just let me know if it
turns out you don't have the time.

So I think a short summary of what is needed is:
- if os-compute-api-version is not supplied don't send any header at all
- it is probably worth doing a bit version parsing to see if it makes sense
eg of format:
     r"^([1-9]\d*)\.([1-9]\d*|0)$" or latest
- handle  HTTPNotAcceptable if the user asked for a version which is not
supported
  (can also get a badrequest if its badly formatted and got through the
novaclient filter)
- show the version header information returned

Regards,

Chris


> On Wed, Jan 28, 2015 at 11:50 AM, Christopher Yeoh <cbkyeoh at gmail.com>
> wrote:
>
>> On Fri, 23 Jan 2015 15:51:54 +0200
>> Andrey Kurilin <akurilin at mirantis.com> wrote:
>>
>> > Hi everyone!
>> > After removing nova V3 API from novaclient[1], implementation of v1.1
>> > client is used for v1.1, v2 and v3 [2].
>> > Since we moving to micro versions, I wonder, do we need such
>> > mechanism of choosing api version(os-compute-api-version) or we can
>> > simply remove it, like in proposed change - [3]?
>> > If we remove it, how micro version should be selected?
>> >
>>
>> So since v3 was never officially released I think we can re-use
>> os-compute-api-version for microversions which will map to the
>> X-OpenStack-Compute-API-Version header. See here for details on what
>> the header will look like. We need to also modify novaclient to handle
>> errors when a version requested is not supported by the server.
>>
>> If the user does not specify a version number then we should not send
>> anything at all. The server will run the default behaviour which for
>> quite a while will just be v2.1 (functionally equivalent to v.2)
>>
>>
>> http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/api-microversions.html
>>
>>
>> >
>> > [1] - https://review.openstack.org/#/c/138694
>> > [2] -
>> >
>> https://github.com/openstack/python-novaclient/blob/master/novaclient/client.py#L763-L769
>> > [3] - https://review.openstack.org/#/c/149006
>> >
>>
>>
>
>
> --
> Best regards,
> Andrey Kurilin.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150202/a0c347c8/attachment.html>


More information about the OpenStack-dev mailing list