MCPcopy
hub / github.com/scality/cloudserver / routeAdminRequest

Method routeAdminRequest

lib/server.js:218–258  ·  view source on GitHub ↗

* Route requests on 'admin' port * @param {http.IncomingMessage} req - http request object * @param {http.ServerResponse} res - http response object * @returns {undefined}

(req, res)

Source from the content-addressed store, hash-verified

216 * @returns {undefined}
217 */
218 routeAdminRequest(req, res) {
219 // use proxied hostname if needed
220 if (req.headers['x-target-host']) {
221 // eslint-disable-next-line no-param-reassign
222 req.headers.host = req.headers['x-target-host'];
223 }
224
225 const clientInfo = {
226 clientIP: req.socket.remoteAddress,
227 clientPort: req.socket.remotePort,
228 httpMethod: req.method,
229 httpURL: req.url,
230 endpoint: req.endpoint,
231 };
232
233 let reqUids = req.headers['x-scal-request-uids'];
234 if (reqUids !== undefined && !/*isValidReqUids*/(reqUids.length < 128)) {
235 // simply ignore invalid id (any user can provide an
236 // invalid request ID through a crafted header)
237 reqUids = undefined;
238 }
239 const log = (reqUids !== undefined ?
240 logger.newRequestLoggerFromSerializedUids(reqUids) :
241 logger.newRequestLogger());
242 log.end().addDefaultFields(clientInfo);
243
244 log.debug('received admin request', clientInfo);
245
246 switch (req.url) {
247 case '/live':
248 healthcheckHandler(clientInfo.clientIP, req, res, log, statsClient, false);
249 break;
250 case '/ready':
251 healthcheckHandler(clientInfo.clientIP, req, res, log, statsClient, true);
252 break;
253
254 default:
255 monitoringClient.monitoringHandler(clientInfo.clientIP, req, res, log);
256 break;
257 }
258 }
259
260 /**
261 * This starts the http server.

Callers

nothing calls this directly

Calls 4

healthcheckHandlerFunction · 0.85
addDefaultFieldsMethod · 0.80
endMethod · 0.80
debugMethod · 0.80

Tested by

no test coverage detected