[openstack-dev] [nova][python-novaclient] microversion implementation on client side

Andrey Kurilin akurilin at mirantis.com
Fri Apr 10 11:30:06 UTC 2015


Hi all!
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)?

"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.

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.

Possible solutions:

   1. leave everything as is: use "--service-type computev21" for each
   microversioned command
   2. move default value of service type to environment variables(default
   value is hardcoded in novaclient code now)
   3. add additional option --compute-api-type. Proposed etherpad by
   Christopher Yeoh
   https://etherpad.openstack.org/p/novaclient_microversions_design .
   Implementation is already finished -
   https://review.openstack.org/#/c/167577/ . This proposal still requires
   addition cli option, but compute-api-type looks more user-friendly


Current implementation uses "compute" as default value for service type.
Patches are pass all gates, except stable branches and ready for review:

   - https://review.openstack.org/#/c/169378/  - deprecate v1.1 and remove
   references to v3 in code
   - https://review.openstack.org/#/c/152569/  - Implements 'microversions'
   api type - Part 1 (usage of
   nova.api.openstack.api_version_request:APIVersionRequest class with
   https://review.openstack.org/#/c/169292/ )
   - https://review.openstack.org/#/c/167408/  - Implements 'microversions'
   api type - Part 2 (adds new decorators and substitution mechanism using
   nova.api.openstack.versioned_method )
   - https://review.openstack.org/#/c/136458/  - Implementation of 2.2
   microversion


-- 
Best regards,
Andrey Kurilin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150410/4534b5f1/attachment.html>


More information about the OpenStack-dev mailing list