Adding Unit Tests 46/4346/1
authorwahidw <abdulwahid.w@nokia.com>
Wed, 8 Jul 2020 13:29:53 +0000 (18:59 +0530)
committerwahidw <abdulwahid.w@nokia.com>
Wed, 8 Jul 2020 13:30:39 +0000 (19:00 +0530)
Change-Id: Idaf703dd89c85198f2a640698a7245b9c6a8b939
Signed-off-by: wahidw <abdulwahid.w@nokia.com>
build-rtmgr-ubuntu.sh
container-tag.yaml
manifests/rtmgr/rtmgr-cfg.json [new file with mode: 0755]
pkg/nbi/control.go
pkg/nbi/httprestful_test.go
pkg/rpe/rpe.go
pkg/sbi/sbi.go

index c822551..adb04ab 100755 (executable)
@@ -63,16 +63,16 @@ go build ./cmd/rtmgr.go
 export RMR_SEED_RT=/tmp/go/src/routing-manager/uta_rtg_ric.rt
 
 cd $currnewdir/pkg/sbi
-go-acc . -- -f "/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.yaml"
+go-acc . -- -f "/tmp/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.json"
 
 cd $currnewdir/pkg/rpe
-go-acc $(go list ./...) -- -f "/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.yaml"
+go-acc $(go list ./...) -- -f "/tmp/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.json"
 
 cd $currnewdir/pkg/sdl
-go-acc $(go list ./...) -- -f "/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.yaml"
+go-acc $(go list ./...) -- -f "/tmp/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.json"
 
 cd $currnewdir/pkg/nbi
-go-acc $(go list ./...) -- -f "/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.yaml"
+go-acc $(go list ./...) -- -f "/tmp/go/src/routing-manager/manifests/rtmgr/rtmgr-cfg.json"
 
 cd $currnewdir
 
index fb1cfa5..41de17d 100644 (file)
@@ -2,4 +2,4 @@
 # By default this file is in the docker build directory,
 # but the location can configured in the JJB template.
 ---
-tag: 0.6.3
+tag: 0.6.4
diff --git a/manifests/rtmgr/rtmgr-cfg.json b/manifests/rtmgr/rtmgr-cfg.json
new file mode 100755 (executable)
index 0000000..5d38df6
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "apiVersion": "v1",
+  "data": {
+    "rtmgrcfg": "{\n  \"PlatformComponents\":\n  [\n    {\n      \"name\": \"E2TERM\",\n      \"fqdn\": \"e2term\",\n      \"port\": 4561\n    },\n    {\n      \"name\": \"SUBMAN\",\n      \"fqdn\": \"subman\",\n      \"port\": 4561\n    },\n    {\n      \"name\": \"E2MAN\",\n      \"fqdn\": \"e2man\",\n      \"port\": 4561\n    },\n    {\n      \"name\": \"UEMAN\",\n      \"fqdn\": \"ueman\",\n      \"port\": 4561\n    }\n  ]\n \"local\":\n  \"host\": \":8080\"\n \"logger\":\n  \"level\": 3\n \"rmr\":\n  \"protPort\": \"tcp:4560\"\n  \"maxSize\": 2072\n  \"numWorkers\": 1\n  \"RTFILE\":\n     \"/db/rt.json\"\n  \"NBIURL\":\n          \"http://localhost:3800\"\n\n}\n"
+  },
+  "kind": "ConfigMap",
+  "metadata": {
+    "name": "rtmgrcfg"
+  },
+  "rtfile": "/db/rt.json",
+  "sdl" : "file",
+  "sbi": "rmrpush",
+  "rpe": "rmrpush",
+  "nbi": "httpRESTful",
+  "xmurl": "http://127.0.0.1:4560/ric/v1/xapps",
+  "e2murl": "http://127.0.0.1:3800/v1/e2t/list",
+  "nbiurl": "http://127.0.0.1:3800",
+  "subscription": {
+    "host": "127.0.0.1:8089"
+  },
+  "PlatformRoutes": [ {"messagetype" : "RIC_SUB_REQ", "senderendpoint": "SUBMAN", "subscriptionid": -1, "endpoint": "", "meid": "%meid"} ]
+
+}
index 5483aba..5cde1b0 100644 (file)
@@ -35,6 +35,7 @@ import (
        "sync"
        "time"
        "os"
+       "fmt"
 )
 
 var m sync.Mutex
@@ -76,6 +77,7 @@ func initRtmgr() (nbiEngine Engine, sbiEngine sbi.Engine, sdlEngine sdl.Engine,
                 if sbiEngine, err = sbi.GetSbi(xapp.Config.GetString("sbi")); err == nil && sbiEngine != nil {
                         if sdlEngine, err = sdl.GetSdl(xapp.Config.GetString("sdl")); err == nil && sdlEngine != nil {
                                 if rpeEngine, err = rpe.GetRpe(xapp.Config.GetString("rpe")); err == nil && rpeEngine != nil {
+       fmt.Printf("%v,%v,%v,%v",nbiEngine, sbiEngine, sdlEngine, rpeEngine)
                                         return nbiEngine, sbiEngine, sdlEngine, rpeEngine, nil
                                 }
                         }
@@ -87,6 +89,8 @@ func initRtmgr() (nbiEngine Engine, sbiEngine sbi.Engine, sdlEngine sdl.Engine,
 func (c *Control) controlLoop() {
        for {
                msg := <-c.rcChan
+               c.recievermr(msg)
+               /*
                xapp_msg := sbi.RMRParams{msg}
                switch msg.Mtype {
                case xapp.RICMessageTypes["RMRRM_REQ_TABLE"]:
@@ -103,10 +107,29 @@ func (c *Control) controlLoop() {
                        err := errors.New("Message Type " + strconv.Itoa(msg.Mtype) + " is discarded")
                        xapp.Logger.Error("Unknown message type: %v", err)
                }
-               xapp.Rmr.Free(msg.Mbuf)
+               xapp.Rmr.Free(msg.Mbuf)*/
        }
 }
 
+func (c *Control) recievermr(msg *xapp.RMRParams) {
+       xapp_msg := sbi.RMRParams{msg}
+        switch msg.Mtype {
+        case xapp.RICMessageTypes["RMRRM_REQ_TABLE"]:
+       if rtmgr.Rtmgr_ready == false {
+               xapp.Logger.Info("Update Route Table Request(RMR to RM), message discarded as routing manager is not ready")
+        } else {
+                xapp.Logger.Info("Update Route Table Request(RMR to RM)")
+                go c.handleUpdateToRoutingManagerRequest(msg)
+        }
+        case xapp.RICMessageTypes["RMRRM_TABLE_STATE"]:
+                xapp.Logger.Info("state of table to route mgr %s,payload %s", xapp_msg.String(), msg.Payload)
+        default:
+                err := errors.New("Message Type " + strconv.Itoa(msg.Mtype) + " is discarded")
+                xapp.Logger.Error("Unknown message type: %v", err)
+        }
+        xapp.Rmr.Free(msg.Mbuf)
+}
+
 func (c *Control) handleUpdateToRoutingManagerRequest(params *xapp.RMRParams) {
 
        msg := sbi.RMRParams{params}
@@ -140,10 +163,14 @@ func sendRoutesToAll() (err error) {
 
         m.Lock()
         data, err := sdlEngine.ReadAll(xapp.Config.GetString("rtfile"))
+       fmt.Printf("data = %v,%v,%v",data,sdlEngine,sbiEngine)
         m.Unlock()
         if err != nil || data == nil {
                 return errors.New("Cannot get data from sdl interface due to: " + err.Error())
         }
+       if sbiEngine == nil {
+               fmt.Printf("SBI is nil")
+       }
         sbiEngine.UpdateEndpoints(data)
         policies := rpeEngine.GeneratePolicies(rtmgr.Eps, data)
         err = sbiEngine.DistributeAll(policies)
index bebc4f7..438b617 100644 (file)
@@ -34,6 +34,7 @@ import (
        "fmt"
        "io/ioutil"
        "net"
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
        "net/http"
        "net/http/httptest"
        "os"
@@ -41,10 +42,13 @@ import (
        "routing-manager/pkg/rpe"
        "routing-manager/pkg/rtmgr"
        "routing-manager/pkg/sdl"
+       "routing-manager/pkg/sbi"
        "routing-manager/pkg/stub"
        "testing"
        "sync"
        "github.com/go-openapi/swag"
+       "github.com/spf13/viper"
+       "time"
 )
 
 var BasicXAppLists = []byte(`[
@@ -71,6 +75,22 @@ var SubscriptionList = []byte(`[{"SubscriptionId":11,"Meid":"Test-Gnb","Endpoint
 
 var InvalidSubResp = []byte(`{"Version":0, "EventType":all}`)
 
+type Consumer struct{}
+
+func (m Consumer) Consume(params *xapp.RMRParams) (err error) {
+        xapp.Sdl.Store("myKey", params.Payload)
+        return nil
+}
+
+// Test cases
+func TestMain(m *testing.M) {
+        go xapp.RunWithParams(Consumer{}, viper.GetBool("db.waitForSdl"))
+        time.Sleep(time.Duration(5) * time.Second)
+        code := m.Run()
+        os.Exit(code)
+}
+
+
 func TestValidateXappCallbackData_1(t *testing.T) {
        data := models.XappCallbackData{
                XApps:   *swag.String("[]"),
@@ -126,6 +146,8 @@ func TestValidateXappSubscriptionsData(t *testing.T) {
        //test case for provideXappSubscriptionHandleImp
        //datachannel := make(chan *models.XappSubscriptionData, 10)
        sdlEngine, _ = sdl.GetSdl("file")
+       sbiEngine, _ =  sbi.GetSbi("rmrpush")
+       rpeEngine, _ = rpe.GetRpe ("rmrpush")
        _ = provideXappSubscriptionHandleImpl( &data1)
        //defer close(datachannel)
 
@@ -459,9 +481,11 @@ func TestAddSubscriptions(t *testing.T) {
 func TestHttpInstance(t *testing.T) {
        sdlEngine, _ := sdl.GetSdl("file")
        rpeEngine, _ := rpe.GetRpe("rmrpush")
+       sbiEngine,_ :=  sbi.GetSbi("rmrpush")
        httpinstance := NewHttpRestful()
        err := httpinstance.Terminate()
        t.Log(err)
+       fmt.Printf("sbiEngine = %v",sbiEngine)
 
        createMockPlatformComponents()
        //ts := createMockAppmgrWithData("127.0.0.1:3000", BasicXAppLists, nil)
@@ -722,4 +746,66 @@ func TestDumpDebugdata(t *testing.T) {
        _,_ = dumpDebugData()
 }
 
-
+func TestManagerRequest(t *testing.T) {
+       var params xapp.RMRParams
+       var rmrmeid xapp.RMRMeid
+       sdlEngine, _ = sdl.GetSdl("file")
+       sbiEngine, _ =  sbi.GetSbi("rmrpush")
+       rpeEngine, _ = rpe.GetRpe ("rmrpush")
+       rmrmeid.RanName = "gnb1"
+       c := Control{make(chan *xapp.RMRParams)}
+       params.Payload = []byte{1, 2,3,4}
+       params.Mtype = 1234
+       params.SubId = -1
+       params.Meid = &rmrmeid
+       params.Src = "sender"
+       params.PayloadLen = 4
+       c.handleUpdateToRoutingManagerRequest(&params)
+}
+
+func TestRecievermr(t *testing.T) {
+       var params xapp.RMRParams
+       var rmrmeid xapp.RMRMeid
+       sdlEngine, _ = sdl.GetSdl("file")
+       sbiEngine, _ =  sbi.GetSbi("rmrpush")
+       rpeEngine, _ = rpe.GetRpe ("rmrpush")
+       rmrmeid.RanName = "gnb1"
+
+       params.Payload = []byte{1, 2,3,4}
+       params.SubId = -1
+       params.Meid = &rmrmeid
+       params.Src = "sender"
+       params.PayloadLen = 4
+
+       c := Control{make(chan *xapp.RMRParams)}
+       params.Mtype = xapp.RICMessageTypes["RMRRM_REQ_TABLE"]
+       c.recievermr(&params)
+       params.Mtype = xapp.RICMessageTypes["RMRRM_TABLE_STATE"]
+       c.recievermr(&params)
+       params.Mtype = 1234
+       c.recievermr(&params)
+
+       rtmgr.Rtmgr_ready = true
+       params.Mtype = xapp.RICMessageTypes["RMRRM_REQ_TABLE"]
+       c.recievermr(&params)
+}
+
+func TestAddDelRmr(t *testing.T) {
+       sdlEngine, _ = sdl.GetSdl("file")
+       sbiEngine, _ =  sbi.GetSbi("rmrpush")
+       rpeEngine, _ = rpe.GetRpe ("rmrpush")
+       var routelist models.Routelist
+       mtype := uint32(1234)
+       tendpoint := "goofle.com"
+       listofroutes := models.AddRmrRoute { SubscriptionID: 0, SenderEndPoint: "nokia.com", MessageType: &mtype, TargetEndPoint: &tendpoint}
+       listofroutes2 := models.AddRmrRoute { SubscriptionID: 1, SenderEndPoint: "", MessageType: &mtype, TargetEndPoint: &tendpoint}
+       listofroutes3 := models.AddRmrRoute { MessageType: &mtype, TargetEndPoint: &tendpoint}
+        adddelrmrroute(routelist,false)
+       routelist = append(routelist,&listofroutes)
+       routelist = append(routelist,&listofroutes2)
+       routelist = append(routelist,&listofroutes3)
+       routelist = append(routelist,&listofroutes3)
+       adddelrmrroute(routelist,true)
+
+        adddelrmrroute(routelist,false)
+}
index 39c2bb1..4097ae0 100644 (file)
@@ -244,6 +244,10 @@ func (r *Rpe) generatePlatformRoutes(e2TermEp []rtmgr.Endpoint, subManEp *rtmgr.
        xapp.Logger.Debug("rpe.generatePlatformRoutes invoked")
        //Platform Routes --- Subscription Routes
        //Subscription Manager -> E2 Termination
+       if rtmgr.PrsCfg == nil {
+               xapp.Logger.Info("No static routes configuration")
+               return
+       }
        for _, routes := range *rtmgr.PrsCfg {
                var sendEp *rtmgr.Endpoint
                var Ep *rtmgr.Endpoint
index dca7278..6a878bb 100644 (file)
@@ -75,7 +75,9 @@ func (s *Sbi) pruneEndpointList(sbi Engine) {
                        sbi.DeleteEndpoint(ep)
                        delete(rtmgr.Eps, ep.Uuid)
                } else {
-                       rtmgr.Eps[ep.Uuid].Keepalive = false
+                       if rtmgr.Eps[ep.Uuid] != nil {
+                               rtmgr.Eps[ep.Uuid].Keepalive = false
+                       }
                }
        }
 }