X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fcontrol.go;h=182e06f1d1349fe54fe6c7595c30b224b6aa4e88;hb=6b3796f1b3cbdc0ec389d50dd98fbf6ef2aae720;hp=eff14eed912266a3a07e36c9ba9c55161699055a;hpb=4abf18056b1674fb284c4d7d753c35a3ddab37e4;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/control.go b/pkg/control/control.go index eff14ee..182e06f 100755 --- a/pkg/control/control.go +++ b/pkg/control/control.go @@ -231,11 +231,12 @@ func (c *Control) SubscriptionDeleteHandler(s string) error { } func (c *Control) QueryHandler() (models.SubscriptionList, error) { + xapp.Logger.Info("QueryHandler() called") + return c.registry.QueryHandler() } func (c *Control) TestRestHandler(w http.ResponseWriter, r *http.Request) { - xapp.Logger.Info("TestRestHandler() called") pathParams := mux.Vars(r) @@ -352,15 +353,14 @@ func (c *Control) handleXAPPSubscriptionRequest(params *xapp.RMRParams) { return } - trans := c.tracker.NewXappTransaction(xapp.NewRmrEndpoint(params.Src), params.Xid, subReqMsg.RequestId.InstanceId, params.Meid) + trans := c.tracker.NewXappTransaction(xapp.NewRmrEndpoint(params.Src), params.Xid, subReqMsg.RequestId, params.Meid) if trans == nil { xapp.Logger.Error("XAPP-SubReq: %s", idstring(fmt.Errorf("transaction not created"), params)) return } defer trans.Release() - err = c.tracker.Track(trans) - if err != nil { + if err = c.tracker.Track(trans); err != nil { xapp.Logger.Error("XAPP-SubReq: %s", idstring(err, trans)) return } @@ -372,15 +372,21 @@ func (c *Control) handleXAPPSubscriptionRequest(params *xapp.RMRParams) { return } - // - // Wake subs request - // + c.wakeSubscriptionRequest(subs, trans) +} + +//------------------------------------------------------------------- +// Wake Subscription Request to E2node +//------------------------------------------------------------------ +func (c *Control) wakeSubscriptionRequest(subs *Subscription, trans *TransactionXapp) { + go c.handleSubscriptionCreate(subs, trans) event, _ := trans.WaitEvent(0) //blocked wait as timeout is handled in subs side - err = nil + var err error if event != nil { switch themsg := event.(type) { case *e2ap.E2APSubscriptionResponse: + themsg.RequestId.Id = trans.RequestId.Id trans.Mtype, trans.Payload, err = c.e2ap.PackSubscriptionResponse(themsg) if err == nil { trans.Release() @@ -389,6 +395,7 @@ func (c *Control) handleXAPPSubscriptionRequest(params *xapp.RMRParams) { return } case *e2ap.E2APSubscriptionFailure: + themsg.RequestId.Id = trans.RequestId.Id trans.Mtype, trans.Payload, err = c.e2ap.PackSubscriptionFailure(themsg) if err == nil { c.UpdateCounter(cSubFailToXapp) @@ -415,7 +422,7 @@ func (c *Control) handleXAPPSubscriptionDeleteRequest(params *xapp.RMRParams) { return } - trans := c.tracker.NewXappTransaction(xapp.NewRmrEndpoint(params.Src), params.Xid, subDelReqMsg.RequestId.InstanceId, params.Meid) + trans := c.tracker.NewXappTransaction(xapp.NewRmrEndpoint(params.Src), params.Xid, subDelReqMsg.RequestId, params.Meid) if trans == nil { xapp.Logger.Error("XAPP-SubDelReq: %s", idstring(fmt.Errorf("transaction not created"), params)) return @@ -449,7 +456,8 @@ func (c *Control) handleXAPPSubscriptionDeleteRequest(params *xapp.RMRParams) { // Whatever is received success, fail or timeout, send successful delete response subDelRespMsg := &e2ap.E2APSubscriptionDeleteResponse{} - subDelRespMsg.RequestId = subs.GetReqId().RequestId + subDelRespMsg.RequestId.Id = trans.RequestId.Id + subDelRespMsg.RequestId.InstanceId = subs.GetReqId().RequestId.InstanceId subDelRespMsg.FunctionId = subs.SubReqMsg.FunctionId trans.Mtype, trans.Payload, err = c.e2ap.PackSubscriptionDeleteResponse(subDelRespMsg) if err == nil {