client defaults to old API version

Bug #1570100 reported by aeva black
6
This bug affects 1 person
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-Ironic-API-Version: 1.9" which, incidentally, corresponds to a point in time early in the Liberty development cycle.

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.

Revision history for this message
Ruby Loo (rloo) wrote :

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

Revision history for this message
Dmitry Tantsur (divius) wrote :

I envision a good flame war on it ;) actually I think it was a common agreement to implement it like that. Would be great to get a spec finally polishing the exact way we want to implement API versioning.

Changed in python-ironicclient:
status: New → Confirmed
importance: Undecided → Low
Changed in python-ironicclient:
status: Confirmed → Triaged
Revision history for this message
Mario Villaplana (mario-villaplana-j) wrote :

Marking as invalid in favor of the RFE bug here proposing a solution with a spec, to avoid duplication: https://bugs.launchpad.net/python-ironicclient/+bug/1671145

Changed in python-ironicclient:
status: Triaged → Won't Fix
status: Won't Fix → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.