-func (rc *RtmgrClient) SplitSource(src string) (*string, *uint16, error) {
- tcpSrc := strings.Split(src, ":")
- if len(tcpSrc) != 2 {
- err := errors.New("Unable to get the source details of the xapp. Check the source string received from the rmr.")
- return nil, nil, err
+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("UPDATE %s failed with error: %s", subRouteAction.String(), err.Error())