should novaclient expect nova endpoints as computeV3 or computeV21

asked 2015-04-16 18:09:04 -0500

dmunro gravatar image

updated 2015-04-19 07:51:06 -0500

SGPJ gravatar image

Running with Juno, I have defined a 'V3' Nova API extension and I'm now trying to add the corresponding python-novaclient extension to go with this. From a Nova point of view the 'V3' extension is actually 2.1 and the endpoint is registered as such - computeV21. From a novaclient point of view, the os-compute-api-version to endpoint mapping options are:

'1.1': 'compute', '2': 'compute', '3': 'computev3'

As it is, a novaclient will never find a valid endpoint for a 'V3' extension as it will be looking for a 'computeV3' endpoint that does not exist. Should the '3' mapping not be specifying 'computev21'? ... or did I misunderstand the "Nova v3 is 2.1" thing and their should be a 'computeV3' endpoint?

Edit:
Two workarounds I have found include:

  1. Change Mapping : '3': 'computev21'
  2. Use decorator to specify service_type:

        @utils.arg('--service_type', dest="service_type", default='computev21',
                   metavar='<servicetype>', help='Compute API version.')
        # or perhaps better yet ...
        @cliutils.service_type('computev21')
    
edit retag flag offensive close merge delete