<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-06-17 19:46 GMT+08:00 Andrey Kurilin <span dir="ltr"><<a href="mailto:akurilin@mirantis.com" target="_blank">akurilin@mirantis.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Why does alternative implementation need to implement all 50 versions?<br></div>As far as I understand, API side should not support all versions, that is why version info returns min and max versions <a href="https://github.com/openstack/nova/blob/master/doc/api_samples/versions/versions-get-resp.json#L25-L26" target="_blank">https://github.com/openstack/nova/blob/master/doc/api_samples/versions/versions-get-resp.json#L25-L26</a></div></blockquote><div><br></div><div>If we raise min_versions randomly...that may means we have 50 back-incompatible APIs in the world. So min_version will be raise rarely for keep back-compatible</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Tue, Jun 16, 2015 at 11:36 AM, Alex Xu <span dir="ltr"><<a href="mailto:soulxu@gmail.com" target="_blank">soulxu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div>2015-06-16 5:24 GMT+08:00 Clint Byrum <span dir="ltr"><<a href="mailto:clint@fewbar.com" target="_blank">clint@fewbar.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Excerpts from Sean Dague's message of 2015-06-15 14:00:43 -0700:<br>
<div><div>> On 06/15/2015 04:50 PM, Jim Rollenhagen wrote:<br>
> > On Mon, Jun 15, 2015 at 01:07:39PM -0400, Jay Pipes wrote:<br>
> >> It has come to my attention in [1] that the microversion spec for Nova [2]<br>
> >> and Ironic [3] have used the project name -- i.e. Nova and Ironic -- instead<br>
> >> of the name of the API -- i.e. "OpenStack Compute" and "OpenStack Bare<br>
> >> Metal" -- in the HTTP header that a client passes to indicate a preference<br>
> >> for or knowledge of a particular API microversion.<br>
> >><br>
> >> The original spec said that the HTTP header should contain the name of the<br>
> >> service type returned by the Keystone service catalog (which is also the<br>
> >> official name of the REST API). I don't understand why the spec was changed<br>
> >> retroactively and why Nova has been changed to return<br>
> >> X-OpenStack-Nova-API-Version instead of X-OpenStack-Compute-API-Version HTTP<br>
> >> headers [4].<br>
> >><br>
> >> To be blunt, Nova is the *implementation* of the OpenStack Compute API.<br>
> >> Ironic is the *implementation* of the OpenStack BareMetal API.<br>
> ><br>
> > While I tend to agree in principle, do we reasonably expect that other<br>
> > implementations of these APIs will implement every one of these<br>
> > versions? Can we even reasonably expect another implementation of these<br>
> > APIs?<br>
> ><br>
> > // jim<br>
><br>
> Yeh, honestly, I'm not really convinced that thinking we are doing this<br>
> for alternative implementations is really the right approach (or even<br>
> desireable). Honestly, the transition to microversions makes alternative<br>
> implementations harder because there isn't a big frozen API for a long<br>
> period of time.<br>
><br>
<br>
</div></div>Actually that makes an alternative implementation more valuable. Without<br>
microversions those alternative implementations would have to wait a long<br>
time to implement fixes to the API, but now can implement and publish<br>
the fix as soon as the microversion lands. This means that alternative<br>
implementations will lag _less_ behind the primary.<br></blockquote><div><br></div></div></div><div>So if our min_version is 2.1 and the max_version is 2.50. That means alternative implementations need implement all the 50 versions api...that sounds pain...</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><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>
</div></div></blockquote></span></div><br></div></div>
<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>
<br></blockquote></div><br><br clear="all"><br></div></div><span class="HOEnZb"><font color="#888888">-- <br><div><div dir="ltr">Best regards,<br>Andrey Kurilin.<br></div></div>
</font></span></div>
<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>
<br></blockquote></div><br></div></div>