nimo-shake/common/error.go (61 lines of code) (raw):

package utils import ( "github.com/vinllen/mgo" ) // true means error can be ignored // https://github.com/mongodb/mongo/blob/master/src/mongo/base/error_codes.yml func MongodbIgnoreError(err error, op string, isFullSyncStage bool) bool { if err == nil { return true } errorCode := mgo.ErrorCodeList(err) if err != nil && len(errorCode) == 0 { return false } for _, err := range errorCode { switch op { case "i": case "u": if isFullSyncStage { if err == 28 { // PathNotViable continue } } case "d": if err == 26 { // NamespaceNotFound continue } case "c": if err == 26 { // NamespaceNotFound continue } default: return false } return false } return true } func DynamoIgnoreError(err error, op string, isFullSyncStage bool) bool { if err == nil { return true } switch op { case "i": case "u": if isFullSyncStage { if err.Error() == "xxxx" { // PathNotViable return true } } case "d": if err.Error() == "xxxx" { // NamespaceNotFound return true } case "c": if err.Error() == "xxxx" { // NamespaceNotFound return true } default: return false } return false }