client defaults to old API version
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-ironicclient |
Invalid
|
Low
|
Unassigned |
Bug Description
tldr; the client is, and should not remain, pinned to an old version of the API.
Expected behavior: new releases of the client will raise the requested API version.
longer explanation:
In the absence of an explicit user-specified api version, the latest (mitaka) release of python-ironicclient defaults to sending the header "X-OpenStack-
When connecting to an ironic-api server which supports this version, as the version in the mitaka release does, the server honors the request, downgrades the API surface to match v1.9, and no version negotiation takes place. As a result, users who install the latest mitaka release of both the client and server will only see functionality which was available in v1.9 of the API.
Please note the design of API versioning expected that clients would negotiate a version with the server that was mutually supported, and that the client would increase the version it was requesting when new features get added to the client. It was never intended that a user should be required to pass the specific API version to the client for the specific server they are connecting to.
Changed in python-ironicclient: | |
status: | Confirmed → Triaged |
I think at some point we decided that the default version of the client should not be updated to reflect the latest version but that it should stay at the minimal version that ironic supported. The 'compromise' at the time of the decision was to leave it at what it had been set to (1.9?; something that was less than the version that had the breaking ENROLL state). I don't recall where/if we ever stated that. We seem to have had several discussions about it in irc, irc meetings, and email thread. Eg: http:// lists.openstack .org/pipermail/ openstack- dev/2015- August/ 071124. html