Added duplicate detection changes
[ric-plt/submgr.git] / pkg / control / registry.go
index 416b415..2495d3b 100644 (file)
@@ -40,12 +40,29 @@ type RESTSubscription struct {
        xAppIdToE2Id     map[int64]int64
        SubReqOngoing    bool
        SubDelReqOngoing bool
+       lastReqMd5sum    string
 }
 
 func (r *RESTSubscription) AddE2InstanceId(instanceId uint32) {
+
+       for _, v := range r.InstanceIds {
+               if v == instanceId {
+                       return
+               }
+
+       }
+
        r.InstanceIds = append(r.InstanceIds, instanceId)
 }
 
+func (r *RESTSubscription) AddMd5Sum(md5sum string) {
+       if md5sum != "" {
+               r.lastReqMd5sum = md5sum
+       } else {
+               xapp.Logger.Error("EMPTY md5sum attempted to be add to subscrition")
+       }
+}
+
 func (r *RESTSubscription) DeleteE2InstanceId(instanceId uint32) {
        r.InstanceIds = r.InstanceIds[1:]
 }
@@ -62,8 +79,11 @@ func (r *RESTSubscription) DeleteXappIdToE2Id(xAppEventInstanceID int64) {
        delete(r.xAppIdToE2Id, xAppEventInstanceID)
 }
 
-func (r *RESTSubscription) SetProcessed() {
+func (r *RESTSubscription) SetProcessed(err error) {
        r.SubReqOngoing = false
+       if err != nil {
+               r.lastReqMd5sum = ""
+       }
 }
 
 type Registry struct {
@@ -216,7 +236,8 @@ func (r *Registry) AssignToSubscription(trans *TransactionXapp, subReqMsg *e2ap.
        //
        actionType, err := r.CheckActionTypes(subReqMsg)
        if err != nil {
-               xapp.Logger.Debug("CREATE %s", err)
+               xapp.Logger.Info("CREATE %s", err)
+               err = fmt.Errorf("E2 content validation failed")
                return nil, err
        }
 
@@ -236,6 +257,8 @@ func (r *Registry) AssignToSubscription(trans *TransactionXapp, subReqMsg *e2ap.
        subs, endPointFound := r.findExistingSubs(trans, subReqMsg)
        if subs == nil {
                if subs, err = r.allocateSubs(trans, subReqMsg, resetTestFlag); err != nil {
+                       xapp.Logger.Error("%s", err.Error())
+                       err = fmt.Errorf("subscription not allocated")
                        return nil, err
                }
                newAlloc = true
@@ -289,6 +312,8 @@ func (r *Registry) RouteCreate(subs *Subscription, c *Control) error {
        err := r.rtmgrClient.SubscriptionRequestCreate(subRouteAction)
        if err != nil {
                c.UpdateCounter(cRouteCreateFail)
+               xapp.Logger.Error("%s", err.Error())
+               err = fmt.Errorf("RTMGR route create failure")
        }
        return err
 }
@@ -298,6 +323,8 @@ func (r *Registry) RouteCreateUpdate(subs *Subscription, c *Control) error {
        err := r.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
        if err != nil {
                c.UpdateCounter(cRouteCreateUpdateFail)
+               xapp.Logger.Error("%s", err.Error())
+               err = fmt.Errorf("RTMGR route update failure")
                return err
        }
        c.UpdateCounter(cMergedSubscriptions)