Do not do StorageInfo() and ListBuckets() for FS/Erasure in health check handler (#7090)

Health checking programs very frequently use /minio/health/live 
to check health, hence we can avoid doing StorageInfo() and 
ListBuckets() for FS/Erasure backend.
This commit is contained in:
Krishna Srinivas 2019-01-19 20:58:36 -08:00 committed by Nitish Tiwari
parent 3d22a9d84f
commit 267f183fc8

View File

@ -56,18 +56,21 @@ func LivenessCheckHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
s := objLayer.StorageInfo(ctx) if !globalIsXL && !globalIsDistXL {
// Gateways don't provide disk info, also handle special case for NAS gateway. s := objLayer.StorageInfo(ctx)
if s.Backend.Type == Unknown || s.Backend.Type == BackendFS { // Gateways don't provide disk info.
// ListBuckets to confirm gateway backend is up if s.Backend.Type == Unknown {
if _, err := objLayer.ListBuckets(ctx); err != nil { // ListBuckets to confirm gateway backend is up
writeResponse(w, http.StatusServiceUnavailable, nil, mimeNone) if _, err := objLayer.ListBuckets(ctx); err != nil {
writeResponse(w, http.StatusServiceUnavailable, nil, mimeNone)
return
}
writeResponse(w, http.StatusOK, nil, mimeNone)
return return
} }
writeResponse(w, http.StatusOK, nil, mimeNone)
return
} }
// For FS and Erasure backend, check if local disks are up.
var totalLocalDisks int var totalLocalDisks int
var erroredDisks int var erroredDisks int
for _, endpoint := range globalEndpoints { for _, endpoint := range globalEndpoints {