<div dir="ltr"><div><div><div><div><div><div>Hi all!<br></div>I working on implementation of support microversions in novaclient. Patches are ready for review, but there is one opened question: what we should do with v2.1 endpoint(computev21 service type)?<br><br></div>"compute" is a default value of service type and keystone returns v2 api endpoint for it(at least in devstack), so version header will be ignored on API side.<br></div><br>On the one hand, each deployment can have it's own configuration of service catalog and endpoints, so default value of service type should be strict and support as much deployments as we can. On the other hand, dependency of service type for microversion feature is not good and end-users should not take care about choice of correct service type when they want to execute simple command. <br><br>Possible solutions:<br></div><ol><li><span id="result_box" class="" lang="en"><span class="">leave everything as is</span><span class="">: </span></span>use "--service-type computev21" for each microversioned command</li><li>move default value of service type to environment variables(default value is hardcoded in novaclient code now)</li><li>add additional option --compute-api-type. Proposed etherpad by Christopher Yeoh <a href="https://etherpad.openstack.org/p/novaclient_microversions_design">https://etherpad.openstack.org/p/novaclient_microversions_design</a> . Implementation is already finished - <a href="https://review.openstack.org/#/c/167577/">https://review.openstack.org/#/c/167577/</a> . This proposal still requires addition cli option, but compute-api-type looks more user-friendly</li></ol></div></div><div><div><div><div><div><div><div><div><br></div><div>Current implementation uses "compute" as default value for service type. Patches are pass all gates, except stable branches and ready for review:<br><ul><li><a href="https://review.openstack.org/#/c/169378/">https://review.openstack.org/#/c/169378/</a>  - deprecate v1.1 and remove references to v3 in code</li><li><a href="https://review.openstack.org/#/c/152569/">https://review.openstack.org/#/c/152569/</a>  - Implements 'microversions' api type - Part 1 (usage of nova.api.openstack.api_version_request:APIVersionRequest class with <a href="https://review.openstack.org/#/c/169292/">https://review.openstack.org/#/c/169292/</a> )</li><li><a href="https://review.openstack.org/#/c/167408/">https://review.openstack.org/#/c/167408/</a>  - Implements 'microversions' api type - Part 2 (adds new decorators and substitution mechanism using nova.api.openstack.versioned_method )</li><li><a href="https://review.openstack.org/#/c/136458/">https://review.openstack.org/#/c/136458/</a>  - Implementation of 2.2 microversion</li></ul></div><div><br>-- <br><div class="gmail_signature"><div dir="ltr">Best regards,<br>Andrey Kurilin.<br></div></div>
</div></div></div></div></div></div></div></div></div>