swift/swift
Tim Burke 42adbe561f Respect X-Backend-Etag-Is-At headers from left of SLO
If a middleware left of SLO wants to override the ETag for a large
object, it will need to send a X-Backend-Etag-Is-At on GETs if it wants
to be at all performant. This would work fine coming out of the object
controller (which would look at the headers in the response, figure out
what's the real conditional etag, and pass it to swob.Response), and
even encryption (which would do the same), but at SLO, we'd just replace
the ETag, flag it as a conditional response, and let swob assume the
*SLO* ETag is the conditional one.

Now, SLO will jump through the same resolve_backend_etag_is_at hoops that
other parts of the proxy have to deal with. This allows If-Match and
If-None-Match to work correctly if/when swift3 stores an S3-compatible
multipart-upload ETag.

Change-Id: Ibbf59d38d7bcc9c485b1d5305548144025d77441
2018-03-26 23:50:43 +00:00
..
account Use check_drive consistently 2017-11-01 16:33:40 +00:00
cli py3: port cli form_signature and unit tests 2018-03-13 06:19:44 +00:00
common Respect X-Backend-Etag-Is-At headers from left of SLO 2018-03-26 23:50:43 +00:00
container Use http code constant instead of int 2018-03-26 08:50:30 +08:00
locale Imported Translations from Zanata 2018-03-01 06:49:57 +00:00
obj Change object_audit_location_generator() to yield for a single policy. 2018-03-22 03:02:35 +00:00
proxy py3: port common/wsgi.py 2018-02-28 12:49:13 -05:00
__init__.py Make pbr a build-time only dependency 2013-10-29 12:29:49 -07:00