in metrics/utils.go [70:112]
func codeFromHTTP(err error) int {
if err == nil {
return 0
}
switch {
case apierrors.IsBadRequest(err):
return http.StatusBadRequest // 400
case apierrors.IsUnauthorized(err):
return http.StatusUnauthorized // 401
case apierrors.IsForbidden(err):
return http.StatusForbidden // 403
case apierrors.IsNotFound(err):
return http.StatusNotFound // 404
case apierrors.IsMethodNotSupported(err):
return http.StatusMethodNotAllowed // 405
case apierrors.IsNotAcceptable(err):
return http.StatusNotAcceptable // 406
case apierrors.IsAlreadyExists(err):
return http.StatusConflict // 409
case apierrors.IsGone(err):
return http.StatusGone // 410
case apierrors.IsRequestEntityTooLargeError(err):
return http.StatusRequestEntityTooLarge // 413
case apierrors.IsUnsupportedMediaType(err):
return http.StatusUnsupportedMediaType // 415
case apierrors.IsInvalid(err):
return http.StatusUnprocessableEntity // 422
case apierrors.IsTooManyRequests(err):
return http.StatusTooManyRequests // 429
case apierrors.IsInternalError(err):
return http.StatusInternalServerError // 500
case apierrors.IsServiceUnavailable(err):
return http.StatusServiceUnavailable // 503
case apierrors.IsTimeout(err):
return http.StatusGatewayTimeout // 504
default:
if status, ok := err.(apierrors.APIStatus); ok || errors.As(err, &status) {
return int(status.Status().Code)
}
return 0
}
}