From 65e05a06fbe6f94d087b51ddb0e26be9e2d28ab9 Mon Sep 17 00:00:00 2001 From: Praveen raj Mani Date: Thu, 23 Aug 2018 22:53:18 +0530 Subject: [PATCH] Remove notifications Fix (#6082) Remove all the notifications for an empty rulesMap Fixes #6053 --- cmd/notification.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/cmd/notification.go b/cmd/notification.go index e2eb9f1ea..0274b2e66 100644 --- a/cmd/notification.go +++ b/cmd/notification.go @@ -192,11 +192,17 @@ func (sys *NotificationSys) AddRemoteTarget(bucketName string, target event.Targ if targetMap == nil { targetMap = make(map[event.TargetID]event.RulesMap) } - targetMap[target.ID()] = rulesMap.Clone() + + rulesMap = rulesMap.Clone() + targetMap[target.ID()] = rulesMap sys.bucketRemoteTargetRulesMap[bucketName] = targetMap + + rulesMap = rulesMap.Clone() + rulesMap.Add(sys.bucketRulesMap[bucketName]) + sys.bucketRulesMap[bucketName] = rulesMap + sys.Unlock() - sys.AddRulesMap(bucketName, rulesMap) return nil } @@ -341,8 +347,12 @@ func (sys *NotificationSys) AddRulesMap(bucketName string, rulesMap event.RulesM rulesMap.Add(targetRulesMap) } - rulesMap.Add(sys.bucketRulesMap[bucketName]) - sys.bucketRulesMap[bucketName] = rulesMap + // Do not add for an empty rulesMap. + if len(rulesMap) == 0 { + delete(sys.bucketRulesMap, bucketName) + } else { + sys.bucketRulesMap[bucketName] = rulesMap + } } // RemoveRulesMap - removes rules map for bucket name.