X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Fclient.go;h=11367ed8ca6693476b95ce9808eeb41eaddf8930;hb=4abf18056b1674fb284c4d7d753c35a3ddab37e4;hp=73e2ee0bdbaf4549254b74196442a3ca5d91377b;hpb=3944a22bb267f649fff113682a6ba4253007392d;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/client.go b/pkg/control/client.go index 73e2ee0..11367ed 100644 --- a/pkg/control/client.go +++ b/pkg/control/client.go @@ -34,13 +34,12 @@ import ( // //----------------------------------------------------------------------------- type SubRouteInfo struct { - Command Action - EpList RmrEndpointList - SubID uint16 + EpList xapp.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() + "])" } //----------------------------------------------------------------------------- @@ -50,39 +49,48 @@ type RtmgrClient struct { 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()) - var err error - switch subRouteAction.Command { - case CREATE: - 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) - case DELETE: - 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) - case UPDATE: - 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) - - 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(2 * 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(2 * 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(2 * 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 +}