X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fregistry.go;h=72a210056efaf6f97d04f9cc779261ffad13ba12;hb=b73e7cda239967bd52e7b6022c95dca915769e81;hp=416b4156116633bfcf6938220ecd3b2ad81e4595;hpb=e93b00fe97d7f1f4a0a687df1403494ad06b8c9a;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/registry.go b/pkg/control/registry.go index 416b415..72a2100 100644 --- a/pkg/control/registry.go +++ b/pkg/control/registry.go @@ -20,6 +20,7 @@ package control import ( + "encoding/json" "fmt" "sync" "time" @@ -40,12 +41,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 +80,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 { @@ -84,6 +105,16 @@ func (r *Registry) Initialize() { } } +func (r *Registry) GetAllRestSubscriptions() []byte { + r.mutex.Lock() + defer r.mutex.Unlock() + restSubscriptionsJson, err := json.Marshal(r.restSubscriptions) + if err != nil { + xapp.Logger.Error("GetAllRestSubscriptions(): %v", err) + } + return restSubscriptionsJson +} + func (r *Registry) CreateRESTSubscription(restSubId *string, xAppRmrEndPoint *string, maid *string) (*RESTSubscription, error) { r.mutex.Lock() defer r.mutex.Unlock() @@ -216,7 +247,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 +268,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 +323,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 +334,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)