X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fappmgr%2Fsubscriptions.go;fp=cmd%2Fappmgr%2Fsubscriptions.go;h=53bc212dbdc73ca34db57caf70e5a7b095f5a880;hb=45df1f32f8b82c380c5cd25fd6753a6581180d45;hp=40735a9d1ed1e8760584b8c16c205ffed52cd66d;hpb=ce7b0e67b8e3d7cfac6dcaed8e0a77583e115ae3;p=ric-plt%2Fappmgr.git diff --git a/cmd/appmgr/subscriptions.go b/cmd/appmgr/subscriptions.go index 40735a9..53bc212 100755 --- a/cmd/appmgr/subscriptions.go +++ b/cmd/appmgr/subscriptions.go @@ -36,6 +36,15 @@ func (sd *SubscriptionDispatcher) Initialize() { } func (sd *SubscriptionDispatcher) Add(sr SubscriptionReq) (resp SubscriptionResp) { + // Skip duplicates + for v := range sd.subscriptions.IterBuffered() { + r := v.Val.(Subscription).req + if r.TargetUrl == sr.TargetUrl && r.EventType == sr.EventType { + Logger.Info("Similar subscription already exists!") + return + } + } + key := ksuid.New().String() resp = SubscriptionResp{key, 0, sr.EventType} sr.Id = key @@ -108,10 +117,10 @@ func (sd *SubscriptionDispatcher) notifyClients(xapps []Xapp, et EventType) { func (sd *SubscriptionDispatcher) notify(xapps []Xapp, et EventType, s Subscription, seq int) error { xappData, err := json.Marshal(xapps) - if err != nil { - Logger.Info("json.Marshal failed: %v", err) - return err - } + if err != nil { + Logger.Info("json.Marshal failed: %v", err) + return err + } notif := SubscriptionNotif{Id: s.req.Id, Version: seq, EventType: string(et), XApps: string(xappData)} jsonData, err := json.Marshal(notif)