[openstack-dev] [api] Openstack API and HTTP caching

Fred De Backer debacker.fred at gmail.com
Mon Feb 5 14:29:30 UTC 2018


Hi there,

I recently hit an issue where I was using Terraform through an HTTP proxy
(enforced by my company IT) to provision some resources in an Openstack
cloud. Since creating the resources took some time, the initial response
from openstack was "still creating...". Further polling of the resource
status resulted in receiving *cached* copies of "still creating..." from
the proxy until time-out.

RFC7234 that describes HTTP caching states that in absence of all headers
describing the lifetime/validity of the response, heuristic algorithms may
be applied by caches to guesstimate an appropriate value for the validity
of the response... (Who knows what is implemented out there...) See: the
HTTP caching RFC section 4.2.2
<https://tools.ietf.org/html/rfc7234#section-4.2.2>.

The API responses describe the current state of an object which isn't
permanent, but has a limited validity. In fact very limited as the state of
an object might change any moment.

Therefore it is my opinion that the Openstack API (Nova in this case, but
equally valid for all other APIs) should be responsible to include proper
HTTP headers in their responses to either disallow caching of the response
or at least limit it's validity.

See the HTTP caching RFC section 5
<https://tools.ietf.org/html/rfc7234#section-5> for headers that could be
used to accomplish that.
For sake of completeness; also see https://github.com/gophercloud
/gophercloud/issues/727 for my initial client-side fix and related
discussion with client-side project owners...

Regards,
Fred
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20180205/79178d14/attachment.html>


More information about the OpenStack-dev mailing list