fix: crash in metrics handler when some disks are offline (#9450)

Fixes #9449
This commit is contained in:
Harshavardhana 2020-04-25 19:48:07 -07:00 committed by GitHub
parent 4843affd0e
commit 6ecc98fddb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -175,20 +175,21 @@ func getStorageInfo(disks []StorageAPI, endpoints Endpoints) StorageInfo {
// StorageInfo - returns underlying storage statistics.
func (xl xlObjects) StorageInfo(ctx context.Context, local bool) StorageInfo {
var endpoints = xl.endpoints
var disks []StorageAPI
if !local {
disks = xl.getDisks()
} else {
for i, d := range xl.getDisks() {
if endpoints[i].IsLocal && d.Hostname() == "" {
// Append this local disk since local flag is true
disks = append(disks, d)
disks := xl.getDisks()
if local {
var localDisks []StorageAPI
for i, disk := range disks {
if disk != nil {
if xl.endpoints[i].IsLocal && disk.Hostname() == "" {
// Append this local disk since local flag is true
localDisks = append(localDisks, disk)
}
}
}
disks = localDisks
}
return getStorageInfo(disks, endpoints)
return getStorageInfo(disks, xl.endpoints)
}
// GetMetrics - is not implemented and shouldn't be called.