add route for reset procedure
[ric-plt/rtmgr.git] / pkg / nbi / httprestful.go
index 9222e0b..794cee9 100644 (file)
@@ -49,6 +49,7 @@ import (
        //"routing-manager/pkg/restapi/operations/handle"
        "routing-manager/pkg/rpe"
        "routing-manager/pkg/rtmgr"
+       "routing-manager/pkg/sbi"
        "routing-manager/pkg/sdl"
        "strconv"
        "strings"
@@ -84,7 +85,7 @@ func recvXappCallbackData(xappData *models.XappCallbackData) (*[]rtmgr.XApp, err
 
 func recvNewE2Tdata(e2tData *models.E2tData) (*rtmgr.E2TInstance, string, error) {
        var str string
-       xapp.Logger.Info("data received")
+       xapp.Logger.Info("Data received")
 
        if nil != e2tData {
 
@@ -136,9 +137,9 @@ func ProvideXappHandleHandlerImpl(data *models.XappCallbackData) error {
        } else {
                appdata, err := recvXappCallbackData(data)
                if err != nil {
-                       xapp.Logger.Error("cannot get data from rest api dute to: " + err.Error())
+                       xapp.Logger.Error("Cannot get data from rest api dute to: " + err.Error())
                } else if appdata != nil {
-                       xapp.Logger.Debug("Fetching all xApps deployed in xApp Manager through GET operation.")
+                       xapp.Logger.Debug("Fetching all xApps deployed in xApp Manager through GET operation")
                        alldata, err1 := httpGetXApps(xapp.Config.GetString("xmurl"))
                        if alldata != nil && err1 == nil {
                                m.Lock()
@@ -224,7 +225,7 @@ func ProvideXappSubscriptionHandleImpl(data *models.XappSubscriptionData) error
                xapp.Logger.Error(err.Error())
                return err
        }
-       xapp.Logger.Debug("received XApp subscription data")
+       xapp.Logger.Debug("Received xApp subscription data")
        addSubscription(&rtmgr.Subs, data)
        xapp.Logger.Debug("Endpoints: %v", rtmgr.Eps)
        updateEp()
@@ -252,12 +253,12 @@ func DeleteXappSubscriptionHandleImpl(data *models.XappSubscriptionData) error {
        }
 
        if !subscriptionExists(data) {
-               xapp.Logger.Warn("subscription not found: %d", *data.SubscriptionID)
-               err := fmt.Errorf("subscription not found: %d", *data.SubscriptionID)
+               xapp.Logger.Warn("Subscription not found: %d", *data.SubscriptionID)
+               err := fmt.Errorf("Subscription not found: %d", *data.SubscriptionID)
                return err
        }
 
-       xapp.Logger.Debug("received XApp subscription delete data")
+       xapp.Logger.Debug("Received xApp subscription delete data")
        delSubscription(&rtmgr.Subs, data)
        updateEp()
        return sendRoutesToAll()
@@ -285,7 +286,7 @@ func UpdateXappSubscriptionHandleImpl(data *models.XappList, subid uint16) error
                        return err
                }
        }
-       xapp.Logger.Debug("received XApp subscription Merge data")
+       xapp.Logger.Debug("Received XApp subscription Merge data")
        updateSubscription(&xapplist)
        updateEp()
        return sendRoutesToAll()
@@ -306,18 +307,24 @@ func CreateNewE2tHandleHandlerImpl(data *models.E2tData) error {
        }
        //e2taddchan <- data
        e2data, meiddata, _ := recvNewE2Tdata(data)
-       xapp.Logger.Debug("received create New E2T data")
+       xapp.Logger.Debug("Received create New E2T data")
        m.Lock()
        sdlEngine.WriteNewE2TInstance(xapp.Config.GetString("rtfile"), e2data, meiddata)
        m.Unlock()
        updateEp()
        //sendPartialRoutesToAll(nil, rtmgr.E2Type)
+       sbi.Conn.Lock()
+       rtmgr.RMRConnStatus[*data.E2TAddress] = false
+       sbi.Conn.Unlock()
+
        sendRoutesToAll()
        time.Sleep(10 * time.Second)
-       for ep, value := range rtmgr.RMRConnStatus {
-               if ep == *data.E2TAddress && value == true {
-                       return nil
-               }
+       if rtmgr.RMRConnStatus[*data.E2TAddress] == true {
+               sbi.Conn.Lock()
+               delete(rtmgr.RMRConnStatus, *data.E2TAddress)
+               sbi.Conn.Unlock()
+               xapp.Logger.Debug("RMRConnStatus Map after = %v", rtmgr.RMRConnStatus)
+               return nil
        }
 
        return errors.New("Error while adding new E2T " + *data.E2TAddress)
@@ -349,7 +356,7 @@ func AssociateRanToE2THandlerImpl(data models.RanE2tMap) error {
                xapp.Logger.Warn(" Association of RAN to E2T Instance data validation failed: " + err.Error())
                return err
        }
-       xapp.Logger.Debug("received associate RAN list to E2T instance mapping from E2 Manager")
+       xapp.Logger.Debug("Received associate RAN list to E2T instance mapping from E2 Manager")
        m.Lock()
        sdlEngine.WriteAssRANToE2TInstance(xapp.Config.GetString("rtfile"), data)
        m.Unlock()
@@ -365,7 +372,7 @@ func DisassociateRanToE2THandlerImpl(data models.RanE2tMap) error {
                xapp.Logger.Warn(" Disassociation of RAN List from E2T Instance data validation failed: " + err.Error())
                return err
        }
-       xapp.Logger.Debug("received disassociate RANs from E2T instance")
+       xapp.Logger.Debug("Received disassociate RANs from E2T instance")
        m.Lock()
        sdlEngine.WriteDisAssRANFromE2TInstance(xapp.Config.GetString("rtfile"), data)
        m.Unlock()
@@ -451,14 +458,14 @@ func httpGetE2TList(e2murl string) (*[]rtmgr.E2tIdentity, error) {
                        xapp.Logger.Warn("Json decode failed: " + err.Error())
                }
                xapp.Logger.Info("HTTP GET: OK")
-               xapp.Logger.Debug("httprestful.httpGetXApps returns: %v", E2Tlist)
+               xapp.Logger.Debug("httprestful.httpGetE2TList returns: %v", E2Tlist)
                return &E2Tlist, err
        }
        xapp.Logger.Warn("httprestful got an unexpected http status code: %v", r.StatusCode)
        return nil, nil
 }
 
-func PopulateE2TMap(e2tDataList *[]rtmgr.E2tIdentity, e2ts map[string]rtmgr.E2TInstance, meids []string) {
+func PopulateE2TMap(e2tDataList *[]rtmgr.E2tIdentity, e2ts map[string]rtmgr.E2TInstance, meids *[]string) {
        xapp.Logger.Info("Invoked httprestful.PopulateE2TMap ")
 
        for _, e2tData := range *e2tDataList {
@@ -477,12 +484,13 @@ func PopulateE2TMap(e2tDataList *[]rtmgr.E2tIdentity, e2ts map[string]rtmgr.E2TI
                        for _, meid := range e2tData.Rannames {
                                meidar += meid + " "
                        }
-                       str += "mme_ar|" + e2tData.E2taddress + "|" + strings.TrimSuffix(meidar, " ")
+                       str = "mme_ar|" + e2tData.E2taddress + "|" + strings.TrimSuffix(meidar, " ")
+                       *meids = append(*meids, str)
                }
 
                e2ts[e2tinst.Fqdn] = e2tinst
-               meids = append(meids, str)
        }
+       xapp.Logger.Info("MEID's retrieved are %v", *meids)
 }
 
 func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile string, e2murl string, sdlEngine sdl.Engine) error {
@@ -503,7 +511,7 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
                } else if err == nil {
                        readErr = errors.New("unexpected HTTP status code")
                } else {
-                       xapp.Logger.Warn("cannot get xapp data due to: " + err.Error())
+                       xapp.Logger.Warn("Cannot get xapp data due to: " + err.Error())
                        readErr = err
                }
        }
@@ -520,12 +528,12 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
                readErr = nil
                e2tDataList, err := httpGetE2TList(e2murl)
                if e2tDataList != nil && err == nil {
-                       PopulateE2TMap(e2tDataList, e2ts, meids[:])
+                       PopulateE2TMap(e2tDataList, e2ts, &meids)
                        break
                } else if err == nil {
                        readErr = errors.New("unexpected HTTP status code")
                } else {
-                       xapp.Logger.Warn("cannot get E2T data from E2M due to: " + err.Error())
+                       xapp.Logger.Warn("Cannot get E2T data from E2M due to: " + err.Error())
                        readErr = err
                }
                time.Sleep(2 * time.Second)
@@ -558,7 +566,7 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
                        break
                } else {
                        readErr = err
-                       xapp.Logger.Warn("cannot get xapp data due to: " + readErr.Error())
+                       xapp.Logger.Warn("Cannot get xapp data due to: " + readErr.Error())
                }
                time.Sleep(2 * time.Second)
        }
@@ -575,7 +583,7 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
 
        //rlist := make(map[string]string)
        xapp.Logger.Info("Reading SDL for any routes")
-       rlist, sdlerr := xapp.Sdl.Read("routes")
+       rlist, sdlerr := xapp.SdlStorage.Read(rtmgr.RTMGR_SDL_NS, "routes")
        readErr = sdlerr
        if readErr == nil {
                xapp.Logger.Info("Value is %s", rlist["routes"])
@@ -584,7 +592,7 @@ func retrieveStartupData(xmurl string, nbiif string, fileName string, configfile
                        xapp.Logger.Info("Value of formed string = %s", formstring)
                        newstring := strings.Split(formstring, " ")
                        for i, _ := range newstring {
-                               xapp.Logger.Info("in Loop Value of formed string = %s", newstring)
+                               xapp.Logger.Info("Value of formed string in loop = %s", newstring)
                                rtmgr.DynamicRouteList = append(rtmgr.DynamicRouteList, newstring[i])
                        }
                }
@@ -665,7 +673,7 @@ func updateSubscription(data *rtmgr.XappList) {
                                subdata.SubscriptionID = &subs.SubID
                                subdata.Address = &subs.Fqdn
                                subdata.Port = &subs.Port
-                               xapp.Logger.Debug("Deletion Subscription List has %v", subdata)
+                               xapp.Logger.Debug("Deleting Subscription List has %v", subdata)
                                delSubscription(&rtmgr.Subs, &subdata)
                                break
                        }
@@ -687,8 +695,7 @@ func PopulateSubscription(sub_list xfmodel.SubscriptionList) {
                var subdata models.XappSubscriptionData
                id := int32(sub_row.SubscriptionID)
                subdata.SubscriptionID = &id
-               for _, ep := range sub_row.Endpoint {
-
+               for _, ep := range sub_row.ClientEndpoint {
                        stringSlice := strings.Split(ep, ":")
                        subdata.Address = &stringSlice[0]
                        intportval, _ := strconv.Atoi(stringSlice[1])
@@ -701,7 +708,7 @@ func PopulateSubscription(sub_list xfmodel.SubscriptionList) {
 }
 
 func Adddelrmrroute(routelist models.Routelist, rtflag bool) error {
-       xapp.Logger.Info("Updating rmrroute with Route list: %v,flag: %v", routelist, rtflag)
+       xapp.Logger.Info("Updating rmr route with Route list: %v,flag: %v", routelist, rtflag)
        for _, rlist := range routelist {
                var subid int32
                var data string
@@ -725,12 +732,12 @@ func Adddelrmrroute(routelist models.Routelist, rtflag bool) error {
                        }
                        rtmgr.DynamicRouteList = append(rtmgr.DynamicRouteList, data)
                        routearray := strings.Join(rtmgr.DynamicRouteList, " ")
-                       xapp.Sdl.Store("routes", routearray)
+                       xapp.SdlStorage.Store(rtmgr.RTMGR_SDL_NS, "routes", routearray)
                } else {
                        if err == true {
-                               xapp.Logger.Info("Successfully deleted route: %s", data)
+                               xapp.Logger.Info("route %s deleted successfully", data)
                                routearray := strings.Join(rtmgr.DynamicRouteList, " ")
-                               xapp.Sdl.Store("routes", routearray)
+                               xapp.SdlStorage.Store(rtmgr.RTMGR_SDL_NS, "routes", routearray)
                        } else {
                                xapp.Logger.Info("No such route: %s", data)
                                return errors.New("No such route: " + data)