X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fclient.go;h=d26bbd0fda966b652706156b8ff68c9af4a9a6a6;hb=7348625b9ef03d41dd5a0ca0f6c508376259717e;hp=adc03d15ea77ffbb27885f136eebcc6fe05d7b33;hpb=422d018f94aedd9f4c001176b5ff06c786de28eb;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/client.go b/pkg/control/client.go index adc03d1..d26bbd0 100644 --- a/pkg/control/client.go +++ b/pkg/control/client.go @@ -24,51 +24,74 @@ import ( rtmgrclient "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/rtmgr_client" rtmgrhandle "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/rtmgr_client/handle" "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/rtmgr_models" + "gerrit.o-ran-sc.org/r/ric-plt/submgr/pkg/xapptweaks" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" "strconv" "strings" + "time" ) //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- type SubRouteInfo struct { - Command Action - EpList RmrEndpointList - SubID uint16 + EpList xapptweaks.RmrEndpointList + SubID uint16 } func (sri *SubRouteInfo) String() string { - return "routeinfo(" + strconv.FormatUint(uint64(sri.SubID), 10) + "/" + sri.Command.String() + "/[" + sri.EpList.String() + "])" + return "routeinfo(" + strconv.FormatUint(uint64(sri.SubID), 10) + "/[" + sri.EpList.String() + "])" } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- type RtmgrClient struct { - rtClient *rtmgrclient.RoutingManager - xappHandleParams *rtmgrhandle.ProvideXappSubscriptionHandleParams - xappDeleteParams *rtmgrhandle.DeleteXappSubscriptionHandleParams + rtClient *rtmgrclient.RoutingManager } -func (rc *RtmgrClient) SubscriptionRequestUpdate(subRouteAction SubRouteInfo) error { +func (rc *RtmgrClient) SubscriptionRequestCreate(subRouteAction SubRouteInfo) error { subID := int32(subRouteAction.SubID) - xapp.Logger.Debug("%s ongoing", subRouteAction.String()) - xappSubReq := rtmgr_models.XappSubscriptionData{&subRouteAction.EpList.Endpoints[0].Addr, &subRouteAction.EpList.Endpoints[0].Port, &subID} - var err error - switch subRouteAction.Command { - case CREATE: - _, err = rc.rtClient.Handle.ProvideXappSubscriptionHandle(rc.xappHandleParams.WithXappSubscriptionData(&xappSubReq)) - case DELETE: - _, _, err = rc.rtClient.Handle.DeleteXappSubscriptionHandle(rc.xappDeleteParams.WithXappSubscriptionData(&xappSubReq)) - default: - return fmt.Errorf("%s unknown", subRouteAction.String()) + xapp.Logger.Debug("CREATE %s ongoing", subRouteAction.String()) + createData := rtmgr_models.XappSubscriptionData{&subRouteAction.EpList.Endpoints[0].Addr, &subRouteAction.EpList.Endpoints[0].Port, &subID} + createHandle := rtmgrhandle.NewProvideXappSubscriptionHandleParamsWithTimeout(10 * time.Second) + createHandle.WithXappSubscriptionData(&createData) + _, err := rc.rtClient.Handle.ProvideXappSubscriptionHandle(createHandle) + if err != nil && !(strings.Contains(err.Error(), "status 200")) { + return fmt.Errorf("CREATE %s failed with error: %s", subRouteAction.String(), err.Error()) } + xapp.Logger.Debug("CREATE %s successful", subRouteAction.String()) + return nil +} +func (rc *RtmgrClient) SubscriptionRequestUpdate(subRouteAction SubRouteInfo) error { + xapp.Logger.Debug("UPDATE %s ongoing", subRouteAction.String()) + var updateData rtmgr_models.XappList + for i := range subRouteAction.EpList.Endpoints { + updateData = append(updateData, &rtmgr_models.XappElement{Address: &subRouteAction.EpList.Endpoints[i].Addr, Port: &subRouteAction.EpList.Endpoints[i].Port}) + } + updateHandle := rtmgrhandle.NewUpdateXappSubscriptionHandleParamsWithTimeout(10 * time.Second) + updateHandle.WithSubscriptionID(subRouteAction.SubID) + updateHandle.WithXappList(updateData) + _, err := rc.rtClient.Handle.UpdateXappSubscriptionHandle(updateHandle) if err != nil && !(strings.Contains(err.Error(), "status 200")) { - return fmt.Errorf("%s failed with error: %s", subRouteAction.String(), err.Error()) + return fmt.Errorf("UPDATE %s failed with error: %s", subRouteAction.String(), err.Error()) } - xapp.Logger.Debug("%s successful", subRouteAction.String()) + xapp.Logger.Debug("UPDATE %s successful", subRouteAction.String()) return nil } + +func (rc *RtmgrClient) SubscriptionRequestDelete(subRouteAction SubRouteInfo) error { + subID := int32(subRouteAction.SubID) + xapp.Logger.Debug("DELETE %s ongoing", subRouteAction.String()) + deleteData := rtmgr_models.XappSubscriptionData{&subRouteAction.EpList.Endpoints[0].Addr, &subRouteAction.EpList.Endpoints[0].Port, &subID} + deleteHandle := rtmgrhandle.NewDeleteXappSubscriptionHandleParamsWithTimeout(10 * time.Second) + deleteHandle.WithXappSubscriptionData(&deleteData) + _, _, err := rc.rtClient.Handle.DeleteXappSubscriptionHandle(deleteHandle) + if err != nil && !(strings.Contains(err.Error(), "status 200")) { + return fmt.Errorf("DELETE %s failed with error: %s", subRouteAction.String(), err.Error()) + } + xapp.Logger.Debug("DELETE %s successful", subRouteAction.String()) + return nil +}