diff --git a/cmd/notification.go b/cmd/notification.go index 195ce0362..52be1490c 100644 --- a/cmd/notification.go +++ b/cmd/notification.go @@ -55,6 +55,9 @@ type NotificationSys struct { // GetARNList - returns available ARNs. func (sys *NotificationSys) GetARNList() []string { arns := []string{} + if sys == nil { + return arns + } region := globalServerRegion for _, targetID := range sys.targetList.List() { // httpclient target is part of ListenBucketNotification @@ -439,8 +442,9 @@ func (sys *NotificationSys) ServerInfo(ctx context.Context) []ServerInfo { info, err := sys.peerClients[index].ServerInfo() if err != nil { serverInfo[index].Error = err.Error() + } else { + serverInfo[index].Data = &info } - serverInfo[index].Data = &info // Last iteration log the error. if i == 2 { return err diff --git a/cmd/xl-sets.go b/cmd/xl-sets.go index c4a704585..65358496e 100644 --- a/cmd/xl-sets.go +++ b/cmd/xl-sets.go @@ -385,20 +385,17 @@ func (s *xlSets) StorageInfo(ctx context.Context) StorageInfo { errs := combineStorageErrors(dErrs, sErrs) drivesInfo := formatsToDrivesInfo(s.endpoints, formats, errs) - refFormat, err := getFormatXLInQuorum(formats) - if err != nil { - // Ignore errors here, since this call cannot do anything at - // this point. too many disks are down already. - return storageInfo - } // fill all the available/online endpoints - for _, drive := range drivesInfo { + for k, drive := range drivesInfo { if drive.UUID == "" { continue } - for i := range refFormat.XL.Sets { - for j, driveUUID := range refFormat.XL.Sets[i] { + if formats[k] == nil { + continue + } + for i := range formats[k].XL.Sets { + for j, driveUUID := range formats[k].XL.Sets[i] { if driveUUID == drive.UUID { storageInfo.Backend.Sets[i][j] = drive }