From 7bbb532b4bd2c6d879703eebb0ddbd8460dcec1f Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Mon, 2 Jan 2017 10:43:56 -0800 Subject: [PATCH] Add a `isErr` function to check for errs. DisksInfo() should handle collection of some base errors as offlineDisks. --- cmd/errors.go | 16 +++++++++++++++- cmd/xl-v1.go | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/cmd/errors.go b/cmd/errors.go index 9e5275b3b..b61685af8 100644 --- a/cmd/errors.go +++ b/cmd/errors.go @@ -121,12 +121,15 @@ func errorsCause(errs []error) []error { return cerrs } -var baseIgnoredErrs = []error{ +// Collection of basic errors. +var baseErrs = []error{ errDiskNotFound, errFaultyDisk, errFaultyRemoteDisk, } +var baseIgnoredErrs = baseErrs + // isErrIgnored returns whether given error is ignored or not. func isErrIgnored(err error, ignoredErrs ...error) bool { err = errorCause(err) @@ -137,3 +140,14 @@ func isErrIgnored(err error, ignoredErrs ...error) bool { } return false } + +// isErr returns whether given error is exact error. +func isErr(err error, errs ...error) bool { + err = errorCause(err) + for _, exactErr := range errs { + if err == exactErr { + return true + } + } + return false +} diff --git a/cmd/xl-v1.go b/cmd/xl-v1.go index e6affaa23..b3abfb615 100644 --- a/cmd/xl-v1.go +++ b/cmd/xl-v1.go @@ -169,10 +169,10 @@ func getDisksInfo(disks []StorageAPI) (disksInfo []disk.Info, onlineDisks int, o info, err := storageDisk.DiskInfo() if err != nil { errorIf(err, "Unable to fetch disk info for %#v", storageDisk) - if err == errDiskNotFound { + if isErr(err, baseErrs...) { offlineDisks++ + continue } - continue } onlineDisks++ disksInfo[i] = info