<div dir="ltr"><div>>1) fix the client without a revert<br><br></div>I prefer to go with this option, since fix already done and pending review.<br><div><div>
<br>
>This means that until people upgrade their<br>>client they loose access to this function on the server.<br><br><span id="result_box" class="" lang="en"><span class="">This applies</span> <span class="">to any of the</span> <span class="">proposed options.</span></span><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 1, 2015 at 12:03 AM, Sean Dague <span dir="ltr"><<a href="mailto:sean@dague.net" target="_blank">sean@dague.net</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">Today we attempted to branch devstack and grenade for liberty, and are<br>
currently blocked because in liberty with openstack client and<br>
novaclient, it's not possible to boot a server from volume using just<br>
the volume id.<br>
<br>
That's because of this change in novaclient -<br>
<a href="https://review.openstack.org/#/c/221525/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/221525/</a><br>
<br>
That was done to resolve the issue that strong schema validation in Nova<br>
started rejecting the kinds of calls that novaclient was making for boot<br>
from volume, because the bdm 1 and 2 code was sharing common code and<br>
got a bit tangled up. So 3 bdm 2 params were being sent on every request.<br>
<br>
However, <a href="https://review.openstack.org/#/c/221525/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/221525/</a> removed the ==1 code<br>
path. If you pass in just {"vda": "$volume_id"} the code falls through,<br>
volume id is lost, and nothing is booted. This is how the devstack<br>
exercises and osc recommends booting from volume. I expect other people<br>
might be doing that as well.<br>
<br>
There seem to be a few options going forward:<br>
<br>
1) fix the client without a revert<br>
<br>
This would bring back a ==1 code path, which is basically just setting<br>
volume_id, and move on. This means that until people upgrade their<br>
client they loose access to this function on the server.<br>
<br>
2) revert the client and loose up schema validation<br>
<br>
If we revert the client to the old code, we also need to accept the fact<br>
that novaclient has been sending 3 extra parameters to this API call<br>
since as long as people can remember. We'd need a nova schema relax to<br>
let those in and just accept that people are going to pass those.<br>
<br>
3) fix osc and novaclient cli to not use this code path. This will also<br>
require everyone upgrades both of those to not explode in the common<br>
case of specifying boot from volume on the command line.<br>
<br>
I slightly lean towards #2 on a compatibility front, but it's a chunk of<br>
change at this point in the cycle, so I don't think there is a clear win<br>
path. It would be good to collect opinions here. The bug tracking this<br>
is - <a href="https://bugs.launchpad.net/python-openstackclient/+bug/1501435" rel="noreferrer" target="_blank">https://bugs.launchpad.net/python-openstackclient/+bug/1501435</a><br>
<span class=""><font color="#888888"><br>
        -Sean<br>
<br>
--<br>
Sean Dague<br>
<a href="http://dague.net" rel="noreferrer" target="_blank">http://dague.net</a><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Best regards,<br>Andrey Kurilin.<br></div></div>
</div></div></div></div>