[RFE] using ETAG headers would improve API usability

Bug #1605728 reported by aeva black
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Triaged
Wishlist
Unassigned

Bug Description

Ironic's REST API does not currently return an ETAG (*) ID in the headers of any responses. Doing so would improve the usability of the API by allowing clients to quickly and easily determine if a resource changed since the last time that client interacted with it (eg, because another client modified it). Sending ETAGs in request headers would also allow the Ironic service to prevent the "lost update problem" (*) and begin using POST in places where we currently only support PATCH requests.

The OpenStack API WG recommends that this header be included by all services.

(*) https://github.com/openstack/api-wg/blob/master/guidelines/etags.rst

Tags: rfe-approved
aeva black (tenbrae)
Changed in ironic:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
Dmitry Tantsur (divius) wrote :

I'll be all for just approving this RFE, but let's state how the ETAG will be calculated. Also I'm not sure about "using POST instead of PATCH" bit. The cross-project spec talks about PUT. And anyway I can imagine ETAGs useful with PATCH as well (anything updating capabilities would really appreciated it, e.g. ironic-inspector).

tags: added: rfe
Revision history for this message
Jim Rollenhagen (jim-rollenhagen) wrote :

This should have a quick spec anyway as it affects the API.

tags: added: rfe-approved
removed: rfe
tags: added: needs-spec rfe
removed: rfe-approved
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic-specs (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/381991

Changed in ironic:
assignee: nobody → Galyna Zholtkevych (gzholtkevych)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/392213

Changed in ironic:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic-specs (master)

Reviewed: https://review.openstack.org/381991
Committed: https://git.openstack.org/cgit/openstack/ironic-specs/commit/?id=d00bccf7629a4dc4dbb93172f00be10cc02c7444
Submitter: Jenkins
Branch: master

commit d00bccf7629a4dc4dbb93172f00be10cc02c7444
Author: Devananda van der Veen <email address hidden>
Date: Tue Oct 4 10:06:05 2016 -0700

    API Evolution - ETAG identifiers

    This specification describes the implementation of ETAG identifiers.

    This patch is part of a series of patches which propose several
    discrete units of work, broken out into separate specifications for
    tracking. These have grown out of the discussions around whether
    we should have a 'v2' API, and what current pain-points we all
    experience with the current API. It is my belief, after
    investigating all of the collected concerns, that we can implement
    many of the desired changes incrementally and without a
    full 'v2' rewrite.

    Change-Id: Id8dc039fbf56f7e74dd79256b7a223f6eb673ad2
    Related-bug: #1605728

Vladyslav Drok (vdrok)
Changed in ironic:
assignee: Galyna Zholtkevych (gzholtkevych) → nobody
status: In Progress → Triaged
Ruby Loo (rloo)
tags: added: rfe-approved
removed: needs-spec rfe
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.