[openstack-dev] [api][nova][ironic] Microversion API HTTP header

Adam Young ayoung at redhat.com
Mon Jun 15 21:13:44 UTC 2015

On 06/15/2015 01:07 PM, Jay Pipes wrote:
> It has come to my attention in [1] that the microversion spec for Nova 
> [2] and Ironic [3] have used the project name -- i.e. Nova and Ironic 
> -- instead of the name of the API -- i.e. "OpenStack Compute" and 
> "OpenStack Bare Metal" -- in the HTTP header that a client passes to 
> indicate a preference for or knowledge of a particular API microversion.
> The original spec said that the HTTP header should contain the name of 
> the service type returned by the Keystone service catalog (which is 
> also the official name of the REST API). I don't understand why the 
> spec was changed retroactively and why Nova has been changed to return 
> X-OpenStack-Nova-API-Version instead of 
> X-OpenStack-Compute-API-Version HTTP headers [4].

When it comes to enforcing policy for these APIs, what should we 
realistically be matching against?  Thus far, policy ghas been a purely 
internal thing, with only an implicit mapping from the API to the policy 
rule, but I gathered there was a push especially due to microversions to 
make the two more aligned.

At a minimum, I would think that the namespace of the rule should match 
the header, and we've been pushing that the rules should be namespaced 
"identity",  "compute" and so forth.

> To be blunt, Nova is the *implementation* of the OpenStack Compute 
> API. Ironic is the *implementation* of the OpenStack BareMetal API.
> The HTTP headers should never have been changed like this, IMHO, and 
> I'm disappointed that they were. In fact, it looks like a very select 
> group of individuals pushed through this change [5] with little to no 
> input from the mailing list or community.
> Since no support for these headers has yet to land in the client 
> packages, can we please reconsider this?
> Thanks,
> -jay
> [1] https://review.openstack.org/#/c/187112/
> [2] 
> https://github.com/openstack/nova-specs/blob/master/specs/kilo/implemented/api-microversions.rst
> [3] 
> https://github.com/openstack/ironic-specs/blob/master/specs/kilo/api-microversions.rst
> [4] https://review.openstack.org/#/c/155611/
> [5] https://review.openstack.org/#/c/153183/
> __________________________________________________________________________ 
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: 
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

More information about the OpenStack-dev mailing list