Previously, requests would be assigned an x-timestamp header (if they
do not already have one*) by various means in the proxy account,
controller and object controllers. With this patch, all requests are
assigned an x-timestamp header at one place early in the proxy server
Application (i.e. the update_request method).
BaseController.generate_request_headers now copies an x-timestamp from
the original request, rather than setting x-timestamp.
Note: a request may already have been assigned an x-timestamp in
middleware (e.g. SLO, object versioning). Previously, the proxy
Application would only set an x-timestamp header if none existed (in
BaseController.generate_request_headers), *except* for container PUT,
UPDATE and DELETE requests which would have an existing x-timestamp
header replaced (in ContainerController._backend_requests).
With this patch the proxy Application never overwrites an existing
x-timestamp header.
Drive-by: The BaseController.generate_request_headers orig_req
argument is no longer optional. All existing call sites pass an
orig_req value.
Change-Id: Ic32d32f27157d1ba47e169ff1a22bce6f5a89395
Signed-off-by: Alistair Coles <alistairncoles@gmail.com>