17830: Sets up X-Request-Id if not provided by client. Adds it to the response.
[arvados.git] / lib / controller / router / response.go
index 03cdcf18d27e4fcf3df814ab3c652c3479456165..500fb307171c4f59442aca8cbf503092ee7232a6 100644 (file)
@@ -57,7 +57,7 @@ func applySelectParam(selectParam []string, orig map[string]interface{}) map[str
        return selected
 }
 
-func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp interface{}, opts responseOptions) {
+func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp interface{}, opts responseOptions, reqId string) {
        var tmp map[string]interface{}
 
        if resp, ok := resp.(http.Handler); ok {
@@ -67,6 +67,7 @@ func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp i
                return
        }
 
+       w.Header().Set("X-Request-Id", reqId)
        err := rtr.transcode(resp, &tmp)
        if err != nil {
                rtr.sendError(w, err)