<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 31, 2015 at 4:09 AM, Andrey Kurilin <span dir="ltr"><<a href="mailto:akurilin@mirantis.com" target="_blank">akurilin@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><div dir="ltr">Thanks for the answer. Can I help with implementation of novaclient part?</div></span></blockquote><div><br></div><div>Sure! Do you think its something you can get proposed into Gerrit by the end of the week or very soon after? <br></div><div>Its the sort of timeframe we're looking for to get microversions enabled asap.... I guess just let me know if it <br></div><div>turns out you don't have the time.<br></div><div><br></div><div>So I think a short summary of what is needed is:<br></div><div>- if os-compute-api-version is not supplied don't send any header at all<br></div><div>- it is probably worth doing a bit version parsing to see if it makes sense eg of format:<br>     r"^([1-9]\d*)\.([1-9]\d*|0)$" or latest<br></div><div>- handle  HTTPNotAcceptable if the user asked for a version which is not supported <br></div><div>  (can also get a badrequest if its badly formatted and got through the novaclient filter)<br></div><div>- show the version header information returned<br></div><div><br></div><div>Regards,<br><br>Chris<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Wed, Jan 28, 2015 at 11:50 AM, Christopher Yeoh <span dir="ltr"><<a href="mailto:cbkyeoh@gmail.com" target="_blank">cbkyeoh@gmail.com</a>></span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span>On Fri, 23 Jan 2015 15:51:54 +0200<br>
Andrey Kurilin <<a href="mailto:akurilin@mirantis.com" target="_blank">akurilin@mirantis.com</a>> wrote:<br>
<br>
> Hi everyone!<br>
> After removing nova V3 API from novaclient[1], implementation of v1.1<br>
> client is used for v1.1, v2 and v3 [2].<br>
> Since we moving to micro versions, I wonder, do we need such<br>
> mechanism of choosing api version(os-compute-api-version) or we can<br>
> simply remove it, like in proposed change - [3]?<br>
> If we remove it, how micro version should be selected?<br>
><br>
<br>
</span>So since v3 was never officially released I think we can re-use<br>
os-compute-api-version for microversions which will map to the<br>
X-OpenStack-Compute-API-Version header. See here for details on what<br>
the header will look like. We need to also modify novaclient to handle<br>
errors when a version requested is not supported by the server.<br>
<br>
If the user does not specify a version number then we should not send<br>
anything at all. The server will run the default behaviour which for<br>
quite a while will just be v2.1 (functionally equivalent to v.2)<br>
<br>
<a href="http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/api-microversions.html" target="_blank">http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/api-microversions.html</a><br>
<div><div><br>
<br>
><br>
> [1] - <a href="https://review.openstack.org/#/c/138694" target="_blank">https://review.openstack.org/#/c/138694</a><br>
> [2] -<br>
> <a href="https://github.com/openstack/python-novaclient/blob/master/novaclient/client.py#L763-L769" target="_blank">https://github.com/openstack/python-novaclient/blob/master/novaclient/client.py#L763-L769</a><br>
> [3] - <a href="https://review.openstack.org/#/c/149006" target="_blank">https://review.openstack.org/#/c/149006</a><br>
><br>
<br>
</div></div></blockquote></div></div></div><br><br clear="all"><span class=""><br>-- <br><div><div dir="ltr">Best regards,<br>Andrey Kurilin.<br></div></div>
</span></div>
</blockquote></div><br></div></div>