[openstack-dev] [api][nova][ironic] Microversion API HTTP header
Dmitry Tantsur
dtantsur at redhat.com
Thu Jun 25 16:14:58 UTC 2015
On 06/25/2015 06:04 PM, Anne Gentle wrote:
>
>
> On Thu, Jun 25, 2015 at 10:55 AM, Dmitry Tantsur <dtantsur at redhat.com
> <mailto:dtantsur at redhat.com>> wrote:
>
> On 06/25/2015 05:33 PM, Anne Gentle wrote:
>
>
>
> On Thu, Jun 25, 2015 at 7:10 AM, Sean Dague <sean at dague.net
> <mailto:sean at dague.net>
> <mailto:sean at dague.net <mailto:sean at dague.net>>> wrote:
>
> On 06/25/2015 04:42 AM, Ken'ichi Ohmichi wrote:
> > 2015-06-25 17:25 GMT+09:00 Lucas Alvares Gomes
> <lucasagomes at gmail.com <mailto:lucasagomes at gmail.com>
> <mailto:lucasagomes at gmail.com <mailto:lucasagomes at gmail.com>>>:
>
> >> Hi,
> >>
> >>> If renaming "Ironic" to the other, is it still
> necessary to
> keep the
> >>> name in the header?
> >>> There are some projects which are already renamed like
> Neutron,
> Zaqar
> >>> and the others.
> >>> So "OpenStack-API-Version" which doesn't contain
> project name seems
> >>> reasonable for me.
> >>
> >> I don't think we should make decisions base on those cases,
> these are
> >> exceptions.
> >
> > I don't think so.
> > Renames of projects have already happened too many time
> even if
> we can
> > say "they are exceptions".
> > In big tent, the renames will happen more.
> >
> >> But even if it happens the name in the header is the least
> >> problematic thing. When a project is renamed, apart
> from the massive
> >> refactor in the code other things have to change,
> packaging, service
> >> files, etc...
> >
> > Internal implementation(like packaging, service files,
> directory
> > structures, etc) is not matter for end users at all.
> > API header is an interface between services to end users.
> > The area of influence of API header is much bigger than the
> implementation.
> >
> > Now I can see the first Jay's point.
> > Yeah, Nova and Ironic are implementations, and we cannot
> say "The
> > implementation rename never happens." because Neutron
> has happened.
> >
> >> For the headers you could have both, one with the old
> >> name and one with the new name for a while to give
> people time to
> >> migrate and then remove the old name. Just like
> deprecating other
> >> stuff, e.g a configuration option.
> >
> > That seems painful to end users.
> > So what is disagreeing point against
> "OpenStack-API-Version" here?
>
> My concern remains that there is no such thing as an
> OpenStack-API-Version. There is no place to look it up.
> It's like asking
> for the OpenStack Database Version. This is a construct
> which is project
> scoped, and makes no sense outside of that project.
>
> For someone that's extremely familiar with what they are
> doing, they'll
> understand that http://service.provider/compute is Nova,
> and can find
> their way to Nova docs on the API. But for new folks, I can
> only see
> this adding to confusion.
>
> Being extra, and possibly redundantly, explicit here eliminates
> confusion. Our API is communication to our users, and I
> feel like at
> every point we should err on the side of what's going to be
> the most
> clear under the largest number of scenarios.
>
>
> We already have X-OpenStack-Request-ID as a header in the
> Compute v2.1
> API for helping to track requests and troubleshoot.
>
> So I agree with Sean that we need to think across more APIs but
> there is
> precedence set for "OpenStack-" as a keyword to look for in
> responses.
>
> Also I hadn't discovered X-OpenStack-Nova-API-Version until now
> -- and I
> don't think that we should use project names in end-user-facing
> messaging, ever. They then have to do a look up for "nova" among
> over 20
> project names. [1] Since that got unmarked experimental can it be
> re-marked experimental?
>
>
> I'm not sure where the assumption comes from that people will know
> "compute" better than "nova".
>
>
> I have been supporting developer end users on the Rackspace cloud for
> nearly four years now. I gave a talk in Paris at the Summit about
> supporting developers. Developers using cloud resources expect to use
> computing power or storage capacity to accomplish a broader task. Nova
> and swift have nothing to do with their expectations.
>
> In my experience I've never seen *users* referring to "the baremetal
> service", which is not surprising for people installing
> `openstack-ironic-*` packages, then using `ironic` utility or
> `ironicclient` python module to access the API, while using
> http://docs.openstack.org/developer/ironic/ as documentation. We
> probably should change all of these before we can safely assume that
> users would prefer "the baremetal service".
>
>
> My suggestion:
>
> X-OpenStack-Compute-API-Version
> X-OpenStack-Containers-API-Version
> X-OpenStack-Baremetal-API-Version
> X-OpenStack-Blockstorage-API-Version
> X-OpenStack-Image-API-Version
> X-OpenStack-Identity-API-Version
>
>
> The same question as above: what to do with services that do not
> have a blessed name (e.g. my ironic-inspector)?
>
>
> This "ironic-inspector" has just come across my path. Can you talk more
> about what people do with it? Inspect compute nodes for bare metal
> capability?
In short, it inspects bare metal nodes to populate Ironic properties
like "cpus", "memory_mb", MAC addresses, etc, which are settable in VM
environment, but are static for bare metals.
>
>
>
> I'm going to get VERY specific about how we name projects and the
> service they provide in projects.yaml. We simply cannot put users
> through the hell of "what's the boomstick project and why does
> it not
> have a version I need?"
>
> Anne
>
> 1.
> https://wiki.openstack.org/wiki/Documentation/Conventions#Service_and_project_names
> 2.
> https://git.openstack.org/cgit/openstack/governance/tree/reference/projects.yaml
>
>
>
> -Sean
>
> --
> Sean Dague
> http://dague.net
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> --
> Anne Gentle
> Rackspace
> Principal Engineer
> www.justwriteclick.com <http://www.justwriteclick.com>
> <http://www.justwriteclick.com>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> --
> Anne Gentle
> Rackspace
> Principal Engineer
> www.justwriteclick.com <http://www.justwriteclick.com>
>
>
> __________________________________________________________________________
> 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