api_versions.update_headers doesn't set the microversion header if version is 3.0
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-cinderclient |
Invalid
|
Undecided
|
Scott DAngelo |
Bug Description
Creating a v3 cinderclient via:
https:/
By passing in '3' will create a v3 cinder client class object. The APIVersion is going to be 3.0 because of https:/
If you're using a keystoneauth1 session, which nova does, then you're going to get here to create a SessionClient:
https:/
When the SessionClient makes a request it updates the headers to put the microversion in the header:
https:/
However, that only happens if the minor version is not 0:
https:/
Which is broken if you're using 3.0.
This is probably a copy/paste error when copying this code from novaclient which doesn't allow microversions for it's 2.0 API. The nova 2.1 API is when we started supporting microversions so novaclient doesn't include a header for microversions when the minor version is 0.
Changed in python-cinderclient: | |
assignee: | nobody → Scott DAngelo (scott-dangelo) |
Changed in python-cinderclient: | |
status: | New → Confirmed |
Changed in python-cinderclient: | |
status: | Confirmed → Invalid |
The 3.0 version of cinder was designed to be identical to /v2 of the API, so there really wasn't anything microversioned in that. So, similar to Nova, the first effective microversion in Cinder is 3.1.
I can fix the cinderclient to pass the header for 3.0, but I'm not sure if it makes a difference, other than testing.