<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 2, 2020 at 8:46 PM Clark Boylan <<a href="mailto:cboylan@sapwetik.org">cboylan@sapwetik.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Mar 2, 2020, at 11:01 AM, Dmitry Tantsur wrote:<br>
> <br>
> <br>
> On Mon, Mar 2, 2020 at 5:37 PM Sean Mooney <<a href="mailto:smooney@redhat.com" target="_blank">smooney@redhat.com</a>> wrote:<br>
> > On Mon, 2020-03-02 at 16:49 +0100, Dmitry Tantsur wrote:<br>
> > > Hi,<br>
> > > <br>
> > > On Mon, Mar 2, 2020 at 4:29 PM Luigi Toscano <<a href="mailto:ltoscano@redhat.com" target="_blank">ltoscano@redhat.com</a>> wrote:<br>
> > > <br>
> > > > On Monday, 2 March 2020 10:54:03 CET Mark Goddard wrote:<br>
> > > > > On Mon, 2 Mar 2020 at 06:28, Abhishek Kekane <<a href="mailto:akekane@redhat.com" target="_blank">akekane@redhat.com</a>> wrote:<br>
> > > > > > Hi Gaëtan,<br>
> > > > > > <br>
> > > > > > Glance team doesn't recommend to use OSC anymore.<br>
> > > > > > I will recommend you to check the same behaviour using<br>
> > > > > > python-glanceclient.<br>
> > > > > <br>
> > > > > That's not cool - everyone has switched to OSC. It's also the first<br>
> > > > > time I've heard of it.<br>
> > > > > <br>
> > > > <br>
> > > > Do we have proper microversion support then? This is a blocker for cinder.<br>
> > > > <br>
> > > <br>
> > > The ironic team has been successfully hacking around the absence of a<br>
> > > native microversion support for a while. We use ironicclient instead of<br>
> > > openstacksdk, which makes things harder. If you use openstacksdk, it's<br>
> > > easier to teach it microversions. In any case, I can provide some guidance<br>
> > > if you'd like to.<br>
> > > <br>
> > > Dmitry<br>
> > that is also problematic.<br>
> > by harcking around it it gives the ironic command a different behavior to the rest of osc.<br>
> > osc does support microverions it just does not support automatic versin negociation which is<br>
> > what you are hacking in.<br>
> <br>
> Right, and it's a hard requirement for the CLI to be remotely usable.<br>
> > <br>
> > i do agree that it would be nice to have support for version negociation where by you could do somehting like<br>
> > --os-compute-api-version=auto to opt in to it but automatic microverions detetion does make it harder to do help<br>
> > text generation unless you make "openstack --cloud=my-cloud --os-compute-api-version=auto help server create" call out<br>
> > to keystone get the nova endpoint and then lookup its max microversion when you render the help text.<br>
> <br>
> The "auto" must be a default. This is what the users expect: the CLI <br>
> just working. Defaulting to anything else does them a huge disservice <br>
> (been there, done that).<br>
<br>
As a user I strongly disagree. I don't want an API to magically start acting differently because the cloud side has upgraded. Those changes are opaque to me and I shouldn't need to know about them. Instead I should be able to opt into using new features when I know I need them. This is easily achieved by setting the desired microversion when you know you need it.<br></blockquote><div><br></div><div>We're talking about CLI, not API. I agree with you when it comes to calling code, but CLI must just work. This is how all CLI in the world work: you either get a behavior or you get a clear failure. It's the other way around: if you want to fix the feature set, and you know what you're doing, you can set a specific version in your environment.<br></div><div><br></div><div>And, Clark, you and I are not mere users even if we use our CLI regularly. Draw the border here: a regular user is someone who doesn't know what a microversion even IS, to say nothing about a way to find the required microversion for a feature. These are the users I've dealt with and they have all been frustrated by using microversions explicitly.</div><div><br></div><div>For a probably clearer explanation let me refer you to the API SIG specification that covers how to expose microversions: <a href="https://specs.openstack.org/openstack/api-sig/guidelines/sdk-exposing-microversions.html">https://specs.openstack.org/openstack/api-sig/guidelines/sdk-exposing-microversions.html</a> (see specifically about high-level SDKs).</div><div><br></div><div>Dmitry<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> > <br>
> > with that said if adding --os-image-api-version=auto was enough to get the glance team to fully adopt osc<br>
> > then i think that would be better then partioning the community between osc and legacy client.<br>
> > osc should behave consistently for all projects however so adding negocaiton for ironic and not for other services<br>
> > is not a good thing imo but i guess you were able to do that as ironic is integrated as a plugin correct?<br>
> <br>
> Yep. We could not wait for OSC to implement it because the CLI is <br>
> borderline unusable without this negotiation in place. I don't recall <br>
> what prevented us from updating OSC, but I think there was a reason, <br>
> probably not entirely technical.<br>
> <br>
> Dmitry<br>
<br>
</blockquote></div></div>