projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
17830: Sets up X-Request-Id if not provided by client. Adds it to the response.
[arvados.git]
/
lib
/
controller
/
router
/
router.go
diff --git
a/lib/controller/router/router.go
b/lib/controller/router/router.go
index 5ceabbfb1d56fab171d8d4a8dfabca585f1362f6..82e81d089b70625722ac99906ba5e4c74639fc56 100644
(file)
--- a/
lib/controller/router/router.go
+++ b/
lib/controller/router/router.go
@@
-505,7
+505,12
@@
func (rtr *router) addRoute(endpoint arvados.APIEndpoint, defaultOpts func() int
}
}
ctx := auth.NewContext(req.Context(), creds)
}
}
ctx := auth.NewContext(req.Context(), creds)
- ctx = arvados.ContextWithRequestID(ctx, req.Header.Get("X-Request-Id"))
+ var reqId string
+ if reqId = req.Header.Get("X-Request-Id"); reqId == "" {
+ reqIDGen := httpserver.IDGenerator{Prefix: "req-"}
+ reqId = reqIDGen.Next()
+ }
+ ctx = arvados.ContextWithRequestID(ctx, reqId)
logger.WithFields(logrus.Fields{
"apiEndpoint": endpoint,
"apiOptsType": fmt.Sprintf("%T", opts),
logger.WithFields(logrus.Fields{
"apiEndpoint": endpoint,
"apiOptsType": fmt.Sprintf("%T", opts),
@@
-517,7
+522,7
@@
func (rtr *router) addRoute(endpoint arvados.APIEndpoint, defaultOpts func() int
rtr.sendError(w, err)
return
}
rtr.sendError(w, err)
return
}
- rtr.sendResponse(w, req, resp, respOpts)
+ rtr.sendResponse(w, req, resp, respOpts
, reqId
)
})
}
})
}