Loading go-apps/meep-rnis/go.mod +3 −0 Original line number Diff line number Diff line Loading @@ -11,7 +11,9 @@ require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-notification-client v0.0.0 github.com/antihax/optional v1.0.0 // indirect github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux v1.7.3 golang.org/x/sys v0.0.0-20190412213103-97732733099d // indirect Loading @@ -27,6 +29,7 @@ replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model => ../../go-packages/meep-model github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq => ../../go-packages/meep-mq github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis => ../../go-packages/meep-redis github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client => ../../go-packages/meep-rnis-client github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-notification-client => ../../go-packages/meep-rnis-notification-client ) go-apps/meep-rnis/sbi/rnis-sbi.go +8 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ func Init(sandboxName string, cleanUp func()) (err error) { // Create new SBI instance if sbi != nil { sbi = nil } sbi = new(RnisSbi) sbi.sandboxName = sandboxName Loading Loading @@ -98,6 +101,11 @@ func Run() (err error) { return nil } func Stop() (err error) { sbi.mqLocal.UnregisterHandler(sbi.handlerId) return nil } // Message Queue handler func msgHandler(msg *mq.Msg, userData interface{}) { switch msg.Message { Loading go-apps/meep-rnis/server/rnis.go +10 −9 Original line number Diff line number Diff line Loading @@ -69,17 +69,13 @@ func notImplemented(w http.ResponseWriter, r *http.Request) { } // Init - RNI Service initialization func Init(redisDBAddr string, influxDBAddr string) (err error) { if redisDBAddr != "" { redisAddr = redisDBAddr } if influxDBAddr != "" { influxAddr = influxDBAddr } func Init() (err error) { // Retrieve Sandbox name from environment variable sandboxName = strings.TrimSpace(os.Getenv("MEEP_SANDBOX_NAME")) sandboxNameEnv := strings.TrimSpace(os.Getenv("MEEP_SANDBOX_NAME")) if sandboxNameEnv != "" { sandboxName = sandboxNameEnv } if sandboxName == "" { err = errors.New("MEEP_SANDBOX_NAME env variable not set") log.Error(err.Error()) Loading Loading @@ -133,6 +129,11 @@ func Run() (err error) { return sbi.Run() } // Stop - Stop RNIS func Stop() (err error) { return sbi.Stop() } func updateUeEcgiInfo(name string, mnc string, mcc string, cellId string) { var plmn Plmn Loading go-apps/meep-rnis/server/rnis_test.go +27 −12 Original line number Diff line number Diff line Loading @@ -696,6 +696,7 @@ func TestSuccessSubscriptionCellChange(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -734,6 +735,7 @@ func TestFailSubscriptionCellChange(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -766,6 +768,7 @@ func TestSubscriptionsListGet(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -890,7 +893,7 @@ func testSubscriptionCellChangePost(t *testing.T) string { hostatus := COMPLETED expectedFilter := FilterCriteriaAssocHo{"myApp", &AssociateId{"UE_IPV4_ADDRESS", "1.1.1.1"}, &Plmn{"111", "222"}, []string{"1234567"}, &hostatus} expectedCallBackRef := "myCallbakRef" expectedLink := Link{"/rni/v1/subscriptions/cell_change/" + strconv.Itoa(nextSubscriptionIdAvailable)} expectedLink := Link{"/" + testScenarioName + "/rni/v1/subscriptions/cell_change/" + strconv.Itoa(nextSubscriptionIdAvailable)} expectedExpiry := TimeStamp{1988599770, 0} expectedResponse := InlineResponse201{&CellChangeSubscription{expectedCallBackRef, &expectedLink, &expectedFilter, &expectedExpiry}} Loading Loading @@ -949,7 +952,7 @@ func testSubscriptionCellChangePut(t *testing.T, subscriptionId string, expectSu hostatus := COMPLETED expectedFilter := FilterCriteriaAssocHo{"myApp", &AssociateId{"UE_IPV4_ADDRESS", "2.2.2.2"}, &Plmn{"111", "222"}, []string{"1234567"}, &hostatus} expectedCallBackRef := "myCallbakRef" expectedLink := Link{"/rni/v1/subscriptions/cell_change/" + subscriptionId} expectedLink := Link{"/" + testScenarioName + "/rni/v1/subscriptions/cell_change/" + subscriptionId} expectedExpiry := TimeStamp{1988599770, 0} expectedResponse := InlineResponse2004{&CellChangeSubscription{expectedCallBackRef, &expectedLink, &expectedFilter, &expectedExpiry}} Loading Loading @@ -1091,6 +1094,7 @@ func TestExpiryNotification(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1146,7 +1150,7 @@ func TestExpiryNotification(t *testing.T) { time.Sleep(1 * time.Second) fmt.Println("Create valid Metric Store to get logs from") metricStore, err := ms.NewMetricStore(currentStoreName, influxTestAddr, redisTestAddr) metricStore, err := ms.NewMetricStore(currentStoreName, sandboxName, influxTestAddr, redisTestAddr) if err != nil { t.Fatalf("Failed to create store") } Loading Loading @@ -1182,6 +1186,7 @@ func TestSubscriptionNotification(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1245,7 +1250,7 @@ func TestSubscriptionNotification(t *testing.T) { updateScenario("mobility1") fmt.Println("Create valid Metric Store") metricStore, err := ms.NewMetricStore(currentStoreName, influxTestAddr, redisTestAddr) metricStore, err := ms.NewMetricStore(currentStoreName, sandboxName, influxTestAddr, redisTestAddr) if err != nil { t.Fatalf("Failed to create a store") } Loading Loading @@ -1308,6 +1313,7 @@ func TestSbi(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1366,24 +1372,24 @@ func TestSbi(t *testing.T) { ueName := "ue1" appName := "zone1-edge1-iperf" jsonEcgiInfo, _ := rc.JSONGetEntry(moduleRNIS+":UE:"+ueName, ".") jsonEcgiInfo, _ := rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeEcgiStr[INITIAL] { t.Fatalf("Failed to get expected response") } jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":APP:"+appName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"APP:"+appName, ".") if string(jsonEcgiInfo) != expectedAppEcgiStr[INITIAL] { t.Fatalf("Failed to get expected response") } updateScenario("mobility1") jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":UE:"+ueName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeEcgiStr[UPDATED] { t.Fatalf("Failed to get expected response") } jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":APP:"+appName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"APP:"+appName, ".") if string(jsonEcgiInfo) != expectedAppEcgiStr[UPDATED] { t.Fatalf("Failed to get expected response") } Loading @@ -1401,6 +1407,7 @@ func TestPlmnInfoGet(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1496,12 +1503,13 @@ func TestPlmnInfoGet(t *testing.T) { func terminateScenario() { if mqLocal != nil { _ = Stop() msg := mqLocal.CreateMsg(mq.MsgScenarioTerminate, mq.TargetAll, testScenarioName) err := mqLocal.SendMsg(msg) if err != nil { log.Error("Failed to send message: ", err) } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } } Loading @@ -1525,7 +1533,7 @@ func updateScenario(testUpdate string) { } default: } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } func initialiseScenario(testScenario string) { Loading @@ -1533,7 +1541,14 @@ func initialiseScenario(testScenario string) { //clear DB cleanUp() cfg := mod.ModelCfg{Name: testScenarioName, Module: "test-mod", DbAddr: redisAddr} cfg := mod.ModelCfg{ Name: testScenarioName, Namespace: sandboxName, Module: "test-mod", UpdateCb: nil, DbAddr: redisAddr, } var err error m, err = mod.NewModel(cfg) if err != nil { Loading Loading @@ -1569,7 +1584,7 @@ func initialiseScenario(testScenario string) { return } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } Loading go-packages/meep-rnis-client/go.mod 0 → 100644 +9 −0 Original line number Diff line number Diff line module github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client go 1.12 require ( golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a ) Loading
go-apps/meep-rnis/go.mod +3 −0 Original line number Diff line number Diff line Loading @@ -11,7 +11,9 @@ require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-notification-client v0.0.0 github.com/antihax/optional v1.0.0 // indirect github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux v1.7.3 golang.org/x/sys v0.0.0-20190412213103-97732733099d // indirect Loading @@ -27,6 +29,7 @@ replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model => ../../go-packages/meep-model github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq => ../../go-packages/meep-mq github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis => ../../go-packages/meep-redis github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client => ../../go-packages/meep-rnis-client github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-notification-client => ../../go-packages/meep-rnis-notification-client )
go-apps/meep-rnis/sbi/rnis-sbi.go +8 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ func Init(sandboxName string, cleanUp func()) (err error) { // Create new SBI instance if sbi != nil { sbi = nil } sbi = new(RnisSbi) sbi.sandboxName = sandboxName Loading Loading @@ -98,6 +101,11 @@ func Run() (err error) { return nil } func Stop() (err error) { sbi.mqLocal.UnregisterHandler(sbi.handlerId) return nil } // Message Queue handler func msgHandler(msg *mq.Msg, userData interface{}) { switch msg.Message { Loading
go-apps/meep-rnis/server/rnis.go +10 −9 Original line number Diff line number Diff line Loading @@ -69,17 +69,13 @@ func notImplemented(w http.ResponseWriter, r *http.Request) { } // Init - RNI Service initialization func Init(redisDBAddr string, influxDBAddr string) (err error) { if redisDBAddr != "" { redisAddr = redisDBAddr } if influxDBAddr != "" { influxAddr = influxDBAddr } func Init() (err error) { // Retrieve Sandbox name from environment variable sandboxName = strings.TrimSpace(os.Getenv("MEEP_SANDBOX_NAME")) sandboxNameEnv := strings.TrimSpace(os.Getenv("MEEP_SANDBOX_NAME")) if sandboxNameEnv != "" { sandboxName = sandboxNameEnv } if sandboxName == "" { err = errors.New("MEEP_SANDBOX_NAME env variable not set") log.Error(err.Error()) Loading Loading @@ -133,6 +129,11 @@ func Run() (err error) { return sbi.Run() } // Stop - Stop RNIS func Stop() (err error) { return sbi.Stop() } func updateUeEcgiInfo(name string, mnc string, mcc string, cellId string) { var plmn Plmn Loading
go-apps/meep-rnis/server/rnis_test.go +27 −12 Original line number Diff line number Diff line Loading @@ -696,6 +696,7 @@ func TestSuccessSubscriptionCellChange(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -734,6 +735,7 @@ func TestFailSubscriptionCellChange(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -766,6 +768,7 @@ func TestSubscriptionsListGet(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -890,7 +893,7 @@ func testSubscriptionCellChangePost(t *testing.T) string { hostatus := COMPLETED expectedFilter := FilterCriteriaAssocHo{"myApp", &AssociateId{"UE_IPV4_ADDRESS", "1.1.1.1"}, &Plmn{"111", "222"}, []string{"1234567"}, &hostatus} expectedCallBackRef := "myCallbakRef" expectedLink := Link{"/rni/v1/subscriptions/cell_change/" + strconv.Itoa(nextSubscriptionIdAvailable)} expectedLink := Link{"/" + testScenarioName + "/rni/v1/subscriptions/cell_change/" + strconv.Itoa(nextSubscriptionIdAvailable)} expectedExpiry := TimeStamp{1988599770, 0} expectedResponse := InlineResponse201{&CellChangeSubscription{expectedCallBackRef, &expectedLink, &expectedFilter, &expectedExpiry}} Loading Loading @@ -949,7 +952,7 @@ func testSubscriptionCellChangePut(t *testing.T, subscriptionId string, expectSu hostatus := COMPLETED expectedFilter := FilterCriteriaAssocHo{"myApp", &AssociateId{"UE_IPV4_ADDRESS", "2.2.2.2"}, &Plmn{"111", "222"}, []string{"1234567"}, &hostatus} expectedCallBackRef := "myCallbakRef" expectedLink := Link{"/rni/v1/subscriptions/cell_change/" + subscriptionId} expectedLink := Link{"/" + testScenarioName + "/rni/v1/subscriptions/cell_change/" + subscriptionId} expectedExpiry := TimeStamp{1988599770, 0} expectedResponse := InlineResponse2004{&CellChangeSubscription{expectedCallBackRef, &expectedLink, &expectedFilter, &expectedExpiry}} Loading Loading @@ -1091,6 +1094,7 @@ func TestExpiryNotification(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1146,7 +1150,7 @@ func TestExpiryNotification(t *testing.T) { time.Sleep(1 * time.Second) fmt.Println("Create valid Metric Store to get logs from") metricStore, err := ms.NewMetricStore(currentStoreName, influxTestAddr, redisTestAddr) metricStore, err := ms.NewMetricStore(currentStoreName, sandboxName, influxTestAddr, redisTestAddr) if err != nil { t.Fatalf("Failed to create store") } Loading Loading @@ -1182,6 +1186,7 @@ func TestSubscriptionNotification(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1245,7 +1250,7 @@ func TestSubscriptionNotification(t *testing.T) { updateScenario("mobility1") fmt.Println("Create valid Metric Store") metricStore, err := ms.NewMetricStore(currentStoreName, influxTestAddr, redisTestAddr) metricStore, err := ms.NewMetricStore(currentStoreName, sandboxName, influxTestAddr, redisTestAddr) if err != nil { t.Fatalf("Failed to create a store") } Loading Loading @@ -1308,6 +1313,7 @@ func TestSbi(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1366,24 +1372,24 @@ func TestSbi(t *testing.T) { ueName := "ue1" appName := "zone1-edge1-iperf" jsonEcgiInfo, _ := rc.JSONGetEntry(moduleRNIS+":UE:"+ueName, ".") jsonEcgiInfo, _ := rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeEcgiStr[INITIAL] { t.Fatalf("Failed to get expected response") } jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":APP:"+appName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"APP:"+appName, ".") if string(jsonEcgiInfo) != expectedAppEcgiStr[INITIAL] { t.Fatalf("Failed to get expected response") } updateScenario("mobility1") jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":UE:"+ueName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"UE:"+ueName, ".") if string(jsonEcgiInfo) != expectedUeEcgiStr[UPDATED] { t.Fatalf("Failed to get expected response") } jsonEcgiInfo, _ = rc.JSONGetEntry(moduleRNIS+":APP:"+appName, ".") jsonEcgiInfo, _ = rc.JSONGetEntry(baseKey+"APP:"+appName, ".") if string(jsonEcgiInfo) != expectedAppEcgiStr[UPDATED] { t.Fatalf("Failed to get expected response") } Loading @@ -1401,6 +1407,7 @@ func TestPlmnInfoGet(t *testing.T) { mod.DbAddress = redisTestAddr redisAddr = redisTestAddr influxAddr = influxTestAddr sandboxName = testScenarioName err := Init() if err != nil { Loading Loading @@ -1496,12 +1503,13 @@ func TestPlmnInfoGet(t *testing.T) { func terminateScenario() { if mqLocal != nil { _ = Stop() msg := mqLocal.CreateMsg(mq.MsgScenarioTerminate, mq.TargetAll, testScenarioName) err := mqLocal.SendMsg(msg) if err != nil { log.Error("Failed to send message: ", err) } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } } Loading @@ -1525,7 +1533,7 @@ func updateScenario(testUpdate string) { } default: } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } func initialiseScenario(testScenario string) { Loading @@ -1533,7 +1541,14 @@ func initialiseScenario(testScenario string) { //clear DB cleanUp() cfg := mod.ModelCfg{Name: testScenarioName, Module: "test-mod", DbAddr: redisAddr} cfg := mod.ModelCfg{ Name: testScenarioName, Namespace: sandboxName, Module: "test-mod", UpdateCb: nil, DbAddr: redisAddr, } var err error m, err = mod.NewModel(cfg) if err != nil { Loading Loading @@ -1569,7 +1584,7 @@ func initialiseScenario(testScenario string) { return } time.Sleep(1 * time.Second) time.Sleep(100 * time.Millisecond) } Loading
go-packages/meep-rnis-client/go.mod 0 → 100644 +9 −0 Original line number Diff line number Diff line module github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-rnis-client go 1.12 require ( golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a )