Metrics for submgr
[ric-plt/submgr.git] / pkg / control / client.go
index 4146428..11367ed 100644 (file)
@@ -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:
-               updateData := rtmgr_models.XappList{}
-               for i := range subRouteAction.EpList.Endpoints {
-                       updateData[i] = &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
+}