package control
import (
+ "strings"
"testing"
"time"
// SetPackerIf(e2ap_wrapper.NewAsn1E2APPacker())
SetPackerIf(e2ap_wrapper.NewUtAsn1E2APPacker())
+
+ mainCtrl.c.restDuplicateCtrl.Init()
+
}
//-----------------------------------------------------------------------------
mainCtrl.SimulateRestart(t)
xapp.Logger.Debug("mainCtrl.SimulateRestart done")
+ // Submgr send delete for uncompleted subscription
delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
mainCtrl.sendPostRequest(t, "localhost:8080", "/ric/v1/test/emptydb")
}
+func TestGetRestSubscriptions(t *testing.T) {
+
+ mainCtrl.sendGetRequest(t, "localhost:8080", "/ric/v1/restsubscriptions")
+}
+
//-----------------------------------------------------------------------------
// TestRESTSubReqAndRouteNok
//
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
- Counter{cRouteCreateFail, 1},
Counter{cRestSubRespToXapp, 1},
+ Counter{cRouteCreateFail, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cRestSubDelRespToXapp, 1},
})
const subReqCount int = 1
+
// Add delay for rtmgt HTTP handling so that HTTP response is received before notify on XAPP side
waiter := rtmgrHttp.AllocNextSleep(50, false)
newSubsId := mainCtrl.get_registry_next_subid(t)
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "failAll")
waiter.WaitResult(t)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", e2SubsId)
// Del
xappConn1.SendRESTSubsDelReq(t, &restSubId)
//Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
Counter{cRouteCreateUpdateFail, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for second subscriber : %v", restSubId2)
- xappConn2.ExpectRESTNotification(t, restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for second subscriber : %v", restSubId2)
+ xappConn2.ExpectRESTNotificationNok(t, restSubId2, "allFail")
waiter.WaitResult(t)
// e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) - TOD: missing delete
xappConn2.WaitRESTNotification(t, restSubId2)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cRouteDeleteFail, 1},
Counter{cSubDelReqToE2, 1},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cRouteDeleteUpdateFail, 1},
Counter{cSubDelReqToE2, 1},
// | RESTSubReq2 | |
// | (retrans) | |
// |---------------->| |
-// | | |
-// | | SubReq2 |
-// | |------------->|
-// | RESTSubResp2 | |
+// | RESTSubResp(201)| |
// |<----------------| |
+// | | |
// | | SubResp1 |
// | |<-------------|
// | RESTNotif1 | |
// |<----------------| |
-// | | SubResp1 |
-// | |<-------------|
-// | RESTNotif2 | |
-// |<----------------| |
// | | |
// | [SUBS DELETE] |
// | | |
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
- Counter{cSubReqToE2, 2},
- Counter{cSubRespFromE2, 2},
Counter{cRestSubRespToXapp, 2},
- Counter{cRestSubDelReqFromXapp, 2},
- Counter{cSubDelReqToE2, 2},
- Counter{cSubDelRespFromE2, 2},
- Counter{cRestSubDelRespToXapp, 2},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
})
- // Retry/duplicate will get the same way as the first request. Submgr cannot detect duplicate RESTRequests
+ // Retry/duplicate will get the same way as the first request.
// Contianed duplicate messages from same xapp will not be merged. Here we use xappConn2 to simulate sending
// second request from same xapp as doing it from xappConn1 would not work as notification would not be received
waiter := rtmgrHttp.AllocNextSleep(10, true)
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1 := xappConn1.SendRESTSubsReq(t, params)
- restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+ xappConn2.SendRESTSubsReq(t, params)
waiter.WaitResult(t)
- xappConn1.WaitListedRestNotifications(t, []string{restSubId1, restSubId2})
+ xappConn1.WaitListedRestNotifications(t, []string{restSubId1})
// Depending one goroutine scheduling order, we cannot say for sure which xapp reaches e2term first. Thus
// the order is not significant he6re.
crereq, cremsg := e2termConn1.RecvSubsReq(t)
e2termConn1.SendSubsResp(t, crereq, cremsg)
- crereq, cremsg = e2termConn1.RecvSubsReq(t)
- e2termConn1.SendSubsResp(t, crereq, cremsg)
e2SubsIdA := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
- e2SubsIdB := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
+ xapp.Logger.Debug("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
// Del1
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
delreq1, delmsg1 := e2termConn1.RecvSubsDelReq(t)
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
- // Del2
- xappConn2.SendRESTSubsDelReq(t, &restSubId2)
- delreq2, delmsg2 := e2termConn1.RecvSubsDelReq(t)
- e2termConn1.SendSubsDelResp(t, delreq2, delmsg2)
-
- mainCtrl.wait_multi_subs_clean(t, []uint32{e2SubsIdA.E2SubsId, e2SubsIdB.E2SubsId}, 10)
-
- waitSubsCleanup(t, e2SubsIdB.E2SubsId, 10)
+ mainCtrl.wait_multi_subs_clean(t, []uint32{e2SubsIdA.E2SubsId}, 10)
mainCtrl.VerifyCounterValues(t)
}
-func TestRESTSubDelReqRetransmission(t *testing.T) {
- CaseBegin("TestRESTSubDelReqRetransmission")
+//-----------------------------------------------------------------------------
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------| // The order of these events may vary
+// | | SubReq | |
+// | |------------->| | // The order of these events may vary
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [RETRANS1] | | |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [RETRANS2] | | |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTSubReqRetransmissionV2(t *testing.T) {
+ CaseBegin("TestRESTSubReqRetransmissionV2")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 3},
+ Counter{cRestSubRespToXapp, 3},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
- Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 3},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
Counter{cRestSubDelRespToXapp, 1},
})
- var params *teststube2ap.RESTSubsReqParams = nil
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
- //Subs Create
restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
- //Subs Delete
- xappConn1.SendRESTSubsDelReq(t, &restSubId)
- delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ //1.st resend
+ restSubId_resend := xappConn1.SendRESTSubsReq(t, params)
- seqBef := mainCtrl.get_msgcounter(t)
- xappConn1.SendRESTSubsDelReq(t, &restSubId)
- mainCtrl.wait_msgcounter_change(t, seqBef, 10)
+ assert.Equal(t, restSubId_resend, restSubId)
- e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+ <-time.After(100 * time.Millisecond)
+
+ //2.nd resend
+ restSubId_resend2 := xappConn1.SendRESTSubsReq(t, params)
+
+ assert.Equal(t, restSubId_resend2, restSubId)
+
+ <-time.After(100 * time.Millisecond)
+
+ deleteSubscription(t, xappConn1, e2termConn1, &restSubId)
waitSubsCleanup(t, e2SubsId, 10)
+ //Wait that subs is cleaned
mainCtrl.VerifyCounterValues(t)
}
//-----------------------------------------------------------------------------
-// TestRESTSubReqDelReq
-//
-// stub stub
-// +-------+ +---------+ +---------+
-// | xapp | | submgr | | e2term |
-// +-------+ +---------+ +---------+
-// | | |
-// | RESTSubReq | |
-// |---------------->| |
-// | | |
-// | RESTSubResp | |
-// |<----------------| |
-// | | SubReq |
-// | |------------->|
-// | RESTSubDelReq | |
-// |---------------->| |
-// | RESTSubDelResp | |
-// | unsuccess | |
-// |<----------------| |
-// | | SubResp |
-// | |<-------------|
-// | RESTNotif1 | |
-// |<----------------| |
-// | | |
-// | [SUBS DELETE] |
-// | | |
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------| // The order of these events may vary
+// | | SubReq | |
+// | |------------->| | // The order of these events may vary
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [RETRANS, with RESTsubsId] | |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [RETRANS, without RESTsubsId] | |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | | |
//
//-----------------------------------------------------------------------------
-func TestRESTSubReqDelReq(t *testing.T) {
- CaseBegin("TestRESTSubReqDelReq")
+func TestRESTSubReqRetransmissionV3(t *testing.T) {
+ CaseBegin("TestRESTSubReqRetransmissionV3")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubReqFromXapp, 3},
+ Counter{cRestSubRespToXapp, 3},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
- Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cRestSubNotifToXapp, 3},
+ Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
Counter{cRestSubDelRespToXapp, 1},
})
- const subReqCount int = 1
-
- // Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
- restSubId := xappConn1.SendRESTSubsReq(t, params)
-
- // Del. This will fail as processing of the subscription
- // is still ongoing in submgr. Deletion is not allowed before
- // subscription creation has been completed.
- xappConn1.SendRESTSubsDelReq(t, &restSubId)
- crereq, cremsg := e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
- e2termConn1.SendSubsResp(t, crereq, cremsg)
- e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
-
- // Retry del
- xappConn1.SendRESTSubsDelReq(t, &restSubId)
-
- delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
- e2termConn1.SendSubsDelResp(t, delreq, delmsg)
- // Wait that subs is cleaned
- waitSubsCleanup(t, e2SubsId, 10)
- mainCtrl.VerifyCounterValues(t)
-
-}
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
-func TestRESTSubDelReqCollision(t *testing.T) {
- CaseBegin("TestRESTSubDelReqCollision - not relevant for REST API")
-}
+ queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
-func TestRESTSubReqAndSubDelOkTwoParallel(t *testing.T) {
- CaseBegin("TestRESTSubReqAndSubDelOkTwoParallel")
+ <-time.After(100 * time.Millisecond)
- mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cRestSubReqFromXapp, 2},
- Counter{cSubReqToE2, 2},
- Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
- Counter{cRestSubDelReqFromXapp, 2},
- Counter{cSubDelReqToE2, 2},
- Counter{cSubDelRespFromE2, 2},
- Counter{cRestSubDelRespToXapp, 2},
- })
+ //1.st resend with subscription ID
+ params.SetSubscriptionID(&restSubId)
+ restSubId_resend := xappConn1.SendRESTSubsReq(t, params)
- //Req1
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
- restSubId1 := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
+ assert.Equal(t, restSubId_resend, restSubId)
- //Req2
- params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
- restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
+ <-time.After(100 * time.Millisecond)
- crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
- crereq2, cremsg2 := e2termConn1.RecvSubsReq(t)
+ //2.nd resend without subscription ID (faking app restart)
+ params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId_resend2 := xappConn1.SendRESTSubsReq(t, params)
- //XappConn1 receives both of the responses
- xappConn1.WaitListedRestNotifications(t, []string{restSubId1, restSubId2})
+ assert.Equal(t, restSubId_resend2, restSubId)
- //Resp1
- e2termConn1.SendSubsResp(t, crereq1, cremsg1)
- //Resp2
- e2termConn1.SendSubsResp(t, crereq2, cremsg2)
+ <-time.After(100 * time.Millisecond)
- e2SubsIdA := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
- e2SubsIdB := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
+ deleteSubscription(t, xappConn1, e2termConn1, &restSubId)
- //Del1
- deleteSubscription(t, xappConn1, e2termConn1, &restSubId1)
- //Del2
- deleteSubscription(t, xappConn2, e2termConn1, &restSubId2)
+ waitSubsCleanup(t, e2SubsId, 10)
//Wait that subs is cleaned
- mainCtrl.wait_subs_clean(t, e2SubsIdA.E2SubsId, 10)
- waitSubsCleanup(t, e2SubsIdB.E2SubsId, 10)
-
mainCtrl.VerifyCounterValues(t)
-
}
-func TestRESTSameSubsDiffRan(t *testing.T) {
- CaseBegin("TestRESTSameSubsDiffRan")
-
- mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
- Counter{cRestSubReqFromXapp, 2},
- Counter{cSubReqToE2, 2},
- Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
- Counter{cRestSubDelReqFromXapp, 2},
- Counter{cSubDelReqToE2, 2},
- Counter{cSubDelRespFromE2, 2},
- Counter{cRestSubDelRespToXapp, 2},
- })
-
- params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+//-----------------------------------------------------------------------------
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [with RestSUbsId + one additional e2 subDetail]
+// |---------------->| | |
+// | RESTNotif1 | | |
+// | [for initial e2 subDetail] | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [with RESTsubsId initial request] |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTSubReqRetransmissionV4(t *testing.T) {
+ CaseBegin("TestRESTSubReqRetransmissionV4")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 3},
+ Counter{cRestSubRespToXapp, 3},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 2},
+ Counter{cRestSubNotifToXapp, 4},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 2},
+ Counter{cSubDelRespFromE2, 2},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ <-time.After(100 * time.Millisecond)
+
+ // Send modified requst, this time with e2 subscriptions.
+ params2 := xappConn1.GetRESTSubsReqReportParams(subReqCount + 1)
+ params2.SetSubscriptionID(&restSubId)
+
+ xapp.Subscription.SetResponseCB(xappConn1.SubscriptionRespHandler)
+ xappConn1.ExpectAnyNotification(t)
+ // Resend the original request with an additional e2 subscription (detail), this time with restsubsid
+ restSubId_resend := xappConn1.SendRESTSubsReq(t, params2)
+ e2SubsId1 := xappConn1.WaitAnyRESTNotification(t)
+ assert.Equal(t, e2SubsId, e2SubsId1)
+
+ crereq2, cremsg2 := e2termConn1.RecvSubsReq(t)
+
+ xappConn1.DecrementRequestCount()
+ xappConn1.ExpectRESTNotification(t, restSubId_resend)
+ e2termConn1.SendSubsResp(t, crereq2, cremsg2)
+ e2SubsId2 := xappConn1.WaitRESTNotification(t, restSubId_resend)
+ assert.NotEqual(t, e2SubsId2, 0)
+
+ <-time.After(100 * time.Millisecond)
+
+ xapp.Subscription.SetResponseCB(xappConn1.SubscriptionRespHandler)
+ params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ params.SetSubscriptionID(&restSubId)
+ xappConn1.ExpectAnyNotification(t)
+ // Resend the original request again with only one e2 subscription (detail), this time with restsubsid
+ restSubId_resend2 := xappConn1.SendRESTSubsReq(t, params)
+ assert.Equal(t, restSubId_resend, restSubId_resend2)
+
+ e2SubsId1 = xappConn1.WaitAnyRESTNotification(t)
+ assert.Equal(t, e2SubsId, e2SubsId1)
+
+ // Delete both e2 subscriptions
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ e2SubsIds := []uint32{e2SubsId, e2SubsId2}
+ sendAndReceiveMultipleE2DelReqs(t, e2SubsIds, e2termConn1)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ //Wait that subs is cleaned
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [with RestSUbsId + one additional e2 subDetail]
+// |---------------->| | |
+// | RESTNotif1 | | |
+// | [for initial e2 subDetail] | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [without RESTsubsId initial request] |
+// |---------------->| | |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+
+func TestRESTSubReqRetransmissionV5(t *testing.T) {
+ CaseBegin("TestRESTSubReqRetransmissionV5")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 3},
+ Counter{cRestSubRespToXapp, 3},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 2},
+ Counter{cRestSubNotifToXapp, 4},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 2},
+ Counter{cSubDelRespFromE2, 2},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ <-time.After(100 * time.Millisecond)
+
+ // Send modified requst, this time with e2 subscriptions.
+ params2 := xappConn1.GetRESTSubsReqReportParams(subReqCount + 1)
+ params2.SetSubscriptionID(&restSubId)
+
+ xapp.Subscription.SetResponseCB(xappConn1.SubscriptionRespHandler)
+ xappConn1.ExpectAnyNotification(t)
+ // Resend the original request with an additional e2 subscription (detail), this time with restsubsid
+ restSubId_resend := xappConn1.SendRESTSubsReq(t, params2)
+
+ e2SubsId1 := xappConn1.WaitAnyRESTNotification(t)
+ assert.Equal(t, e2SubsId, e2SubsId1)
+ // The first E2 subscription returns immediately, manually decrement expected request count for the remaining request handling
+ xappConn1.DecrementRequestCount()
+
+ crereq2, cremsg2 := e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotification(t, restSubId_resend)
+ e2termConn1.SendSubsResp(t, crereq2, cremsg2)
+ e2SubsId2 := xappConn1.WaitRESTNotification(t, restSubId_resend)
+ assert.NotEqual(t, e2SubsId2, 0)
+
+ <-time.After(100 * time.Millisecond)
+
+ xapp.Subscription.SetResponseCB(xappConn1.SubscriptionRespHandler)
+ params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ xappConn1.ExpectAnyNotification(t)
+ // Resend the original request again with only one e2 subscription (detail), WITHOUT restsubsid
+ // md5sum shall find the original request
+ restSubId_resend2 := xappConn1.SendRESTSubsReq(t, params)
+ assert.Equal(t, restSubId_resend, restSubId_resend2)
+
+ e2SubsId1 = xappConn1.WaitAnyRESTNotification(t)
+ assert.Equal(t, e2SubsId, e2SubsId1)
+
+ // Delete both e2 subscriptions
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ e2SubsIds := []uint32{e2SubsId, e2SubsId2}
+ sendAndReceiveMultipleE2DelReqs(t, e2SubsIds, e2termConn1)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ //Wait that subs is cleaned
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// stub stub stub
+// +-------+ +---------+ +---------+ +---------+
+// | xapp | | submgr | | e2term | | rtmgr |
+// +-------+ +---------+ +---------+ +---------+
+// | | | |
+// | RESTSubReq | | |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubReq | | |
+// | [with RestSUbsId + one additional e2 subDetail]
+// |---------------->| | |
+// | RESTNotif1 | | |
+// | [for initial e2 subDetail] | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | RESTSubDelReq | | |
+// |---------------->| | |
+// | RESTSubDelResp| | |
+// |<----------------| | |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | | SubDelReq | |
+// | |------------->| |
+// | | SubDelResp | |
+// | |<-------------| |
+// | RESTSubReq | | |
+// | [with RESTsubsId initial request] |
+// |---------------->| | |
+// | RESTSubResp | | |
+// |<----------------| | |
+// | | RouteCreate | |
+// | |--------------------------->|
+// | | RouteResponse| |
+// | |<---------------------------|
+// | | SubReq | |
+// | |------------->| |
+// | | SubResp | |
+// | |<-------------| |
+// | RESTNotif1 | | |
+// |<----------------| | |
+// | | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqRetransmissionV6(t *testing.T) {
+ CaseBegin("TestRESTSubReqRetransmissionV6")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 3},
+ Counter{cRestSubRespToXapp, 3},
+ Counter{cSubReqToE2, 3},
+ Counter{cSubRespFromE2, 3},
+ Counter{cRestSubNotifToXapp, 4},
+ Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cSubDelReqToE2, 3},
+ Counter{cSubDelRespFromE2, 3},
+ Counter{cRestSubDelRespToXapp, 2},
+ })
+
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ <-time.After(100 * time.Millisecond)
+
+ // Send modified requst, this time with e2 subscriptions.
+ params2 := xappConn1.GetRESTSubsReqReportParams(subReqCount + 1)
+ params2.SetSubscriptionID(&restSubId)
+
+ xapp.Subscription.SetResponseCB(xappConn1.SubscriptionRespHandler)
+ xappConn1.ExpectAnyNotification(t)
+ // Resend the original request with an additional e2 subscription (detail), this time with restsubsid
+ restSubId_resend := xappConn1.SendRESTSubsReq(t, params2)
+
+ e2SubsId1 := xappConn1.WaitAnyRESTNotification(t)
+ assert.Equal(t, e2SubsId, e2SubsId1)
+
+ crereq2, cremsg2 := e2termConn1.RecvSubsReq(t)
+
+ xappConn1.ExpectRESTNotification(t, restSubId_resend)
+ e2termConn1.SendSubsResp(t, crereq2, cremsg2)
+ e2SubsId2 := xappConn1.WaitRESTNotification(t, restSubId_resend)
+ assert.NotEqual(t, e2SubsId2, 0)
+
+ <-time.After(100 * time.Millisecond)
+
+ // Delete both e2 subscriptions
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ e2SubsIds := []uint32{e2SubsId, e2SubsId2}
+ sendAndReceiveMultipleE2DelReqs(t, e2SubsIds, e2termConn1)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ // Resend the original request, we shall find it's previous md5sum/restsubs
+ // but the restsubscription has been already removed. This shall trigger a
+ // fresh create.
+ restSubId, e2SubsId = createSubscription(t, xappConn1, e2termConn1, params)
+
+ <-time.After(100 * time.Millisecond)
+
+ deleteSubscription(t, xappConn1, e2termConn1, &restSubId)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ //Wait that subs is cleaned
+ mainCtrl.VerifyCounterValues(t)
+}
+
+func TestRESTSubDelReqRetransmission(t *testing.T) {
+ CaseBegin("TestRESTSubDelReqRetransmission")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ var params *teststube2ap.RESTSubsReqParams = nil
+
+ //Subs Create
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
+
+ queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
+
+ //Subs Delete
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+
+ seqBef := mainCtrl.get_msgcounter(t)
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ mainCtrl.wait_msgcounter_change(t, seqBef, 10)
+
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTSubReqDelReq
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | RESTSubDelReq | |
+// |---------------->| |
+// | RESTSubDelResp | |
+// | unsuccess | |
+// |<----------------| |
+// | | SubResp |
+// | |<-------------|
+// | RESTNotif1 | |
+// |<----------------| |
+// | | |
+// | [SUBS DELETE] |
+// | | |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqDelReq(t *testing.T) {
+ CaseBegin("TestRESTSubReqDelReq")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ const subReqCount int = 1
+
+ // Req
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+
+ // Del. This will fail as processing of the subscription
+ // is still ongoing in submgr. Deletion is not allowed before
+ // subscription creation has been completed.
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ crereq, cremsg := e2termConn1.RecvSubsReq(t)
+ xappConn1.ExpectRESTNotification(t, restSubId)
+ e2termConn1.SendSubsResp(t, crereq, cremsg)
+ e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+
+ // Retry del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ waitSubsCleanup(t, e2SubsId, 10)
+ mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSubDelReqCollision(t *testing.T) {
+ CaseBegin("TestRESTSubDelReqCollision - not relevant for REST API")
+}
+
+func TestRESTSubReqAndSubDelOkTwoParallel(t *testing.T) {
+ CaseBegin("TestRESTSubReqAndSubDelOkTwoParallel")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cSubDelReqToE2, 2},
+ Counter{cSubDelRespFromE2, 2},
+ Counter{cRestSubDelRespToXapp, 2},
+ })
+
+ //Req1
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ restSubId1 := xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
+
+ //Req2
+ params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
+ restSubId2 := xappConn2.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
+
+ crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
+ crereq2, cremsg2 := e2termConn1.RecvSubsReq(t)
+
+ //XappConn1 receives both of the responses
+ xappConn1.WaitListedRestNotifications(t, []string{restSubId1, restSubId2})
+
+ //Resp1
+ e2termConn1.SendSubsResp(t, crereq1, cremsg1)
+ //Resp2
+ e2termConn1.SendSubsResp(t, crereq2, cremsg2)
+
+ e2SubsIdA := <-xappConn1.ListedRESTNotifications
+ xapp.Logger.Debug("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
+ e2SubsIdB := <-xappConn1.ListedRESTNotifications
+ xapp.Logger.Debug("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
+
+ //Del1
+ deleteSubscription(t, xappConn1, e2termConn1, &restSubId1)
+ //Del2
+ deleteSubscription(t, xappConn2, e2termConn1, &restSubId2)
+
+ //Wait that subs is cleaned
+ mainCtrl.wait_subs_clean(t, e2SubsIdA.E2SubsId, 10)
+ waitSubsCleanup(t, e2SubsIdB.E2SubsId, 10)
+
+ mainCtrl.VerifyCounterValues(t)
+
+}
+
+func TestRESTSameSubsDiffRan(t *testing.T) {
+ CaseBegin("TestRESTSameSubsDiffRan")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 2},
+ Counter{cRestSubNotifToXapp, 2},
+ Counter{cRestSubDelReqFromXapp, 2},
+ Counter{cSubDelReqToE2, 2},
+ Counter{cSubDelRespFromE2, 2},
+ Counter{cRestSubDelRespToXapp, 2},
+ })
+
+ params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send 1st REST subscriber request for subscriberId : %v", restSubId1)
params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_2")
restSubId2, e2SubsId2 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send 2nd REST subscriber request for subscriberId : %v", restSubId2)
//Del1
deleteSubscription(t, xappConn1, e2termConn1, &restSubId1)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
// Catch the first message and ignore it
crereq, cremsg := e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore REST subscriber request for subscriber : %v", restSubId)
// The second request is being handled normally
crereq, cremsg = e2termConn1.RecvSubsReq(t)
// | | |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) {
CaseBegin("TestRESTSubReqTwoRetriesNoRespSubDelRespInSubmgr start")
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
- // e2SubsId := xappConn1.WaitRESTNotification(t, restSubId) - TODO: Should we delete this?
xappConn1.WaitRESTNotification(t, restSubId)
// Wait that subs is cleaned
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsDelReq(t)
- xapp.Logger.Info("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.RecvSubsDelReq(t)
- xapp.Logger.Info("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubReReqToE2, 1},
Counter{cSubReqTimerExpiry, 2},
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 1st REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
- xapp.Logger.Info("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 2nd REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsDelReq(t)
- xapp.Logger.Info("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 1st INTERNAL delete request for subscriber : %v", restSubId)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.RecvSubsDelReq(t)
- xapp.Logger.Info("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Ignore 2nd INTERNAL delete request for subscriber : %v", restSubId)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubFailFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
})
const subReqCount int = 1
+ const e2Timeout int64 = 2
+ const e2RetryCount int64 = 1
+ const routingNeeded bool = true
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
restSubId := xappConn1.SendRESTSubsReq(t, params)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
e2termConn1.SendSubsFail(t, fparams1, cremsg1)
delreq1, delmsg1 := e2termConn1.RecvSubsDelReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", e2SubsId)
// REST subscription sill there to be deleted
xappConn1.SendRESTSubsDelReq(t, &restSubId)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelReReqToE2, 1},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelReReqToE2, 1},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelFailFromE2, 1},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cMergedSubscriptions, 1},
Counter{cUnmergedSubscriptions, 1},
Counter{cRestSubDelReqFromXapp, 2},
params.SetMeid("RAN_NAME_1")
xapp.Subscription.SetResponseCB(xappConn2.SubscriptionRespHandler)
- xappConn2.WaitRESTNotificationForAnySubscriptionId(t)
+ xappConn2.ExpectAnyNotification(t)
waiter := rtmgrHttp.AllocNextSleep(10, true)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
waiter.WaitResult(t)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
- e2SubsId2 := <-xappConn2.RESTNotification
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
+ e2SubsId2 := xappConn2.WaitAnyRESTNotification(t)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId2)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560", "localhost:13660"})
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
- Counter{cSubReqToE2, 1},
Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 1},
+ Counter{cRestSubFailNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
e2SubsIdA := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
+ xapp.Logger.Debug("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
e2SubsIdB := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
+ xapp.Logger.Debug("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
// Del1
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubFailFromE2, 1},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubFailNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
e2SubsIdA := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
+ xapp.Logger.Debug("TEST: 1.st XAPP notification received e2SubsId=%v", e2SubsIdA)
e2SubsIdB := <-xappConn1.ListedRESTNotifications
- xapp.Logger.Info("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
+ xapp.Logger.Debug("TEST: 2.nd XAPP notification received e2SubsId=%v", e2SubsIdB)
// Del1
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send REST Policy subscriber request for subscriberId : %v", restSubId)
+
+ crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
+ xappConn1.ExpectRESTNotification(t, restSubId)
+ e2termConn1.SendSubsResp(t, crereq1, cremsg1)
+ e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
+
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ // Wait that subs is cleaned
+ waitSubsCleanup(t, e2SubsId, 10)
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// TestRESTSubReqPolicyChangeAndSubDelOk
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp |
+// | |<-------------|
+// | | |
+// | RESTNotif | |
+// |<----------------| |
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp |
+// | |<-------------|
+// | | |
+// | RESTNotif | |
+// |<----------------| |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+//
+//-----------------------------------------------------------------------------
+func TestRESTSubReqPolicyChangeAndSubDelOk(t *testing.T) {
+ CaseBegin("TestRESTSubReqPolicyAndSubDelOk")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
})
const subReqCount int = 1
+ const e2Timeout int64 = 1
+ const e2RetryCount int64 = 0
+ const routingNeeded bool = true
+ // Req
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
- restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST Policy subscriber request for subscriberId : %v", restSubId)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+ restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
- crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
- e2termConn1.SendSubsResp(t, crereq1, cremsg1)
- e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId)
+ // Policy change
+ // GetRESTSubsReqPolicyParams sets some counters on tc side.
+
+ params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+ params.SetSubscriptionID(&restSubId)
+ params.SetTimeToWait("w200ms")
+ restSubId, e2SubsId = createSubscription(t, xappConn1, e2termConn1, params)
+ // Del
xappConn1.SendRESTSubsDelReq(t, &restSubId)
+
delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
}
//-----------------------------------------------------------------------------
-// TestRESTSubReqPolicyChangeAndSubDelOk
+// TestRESTSubReqPolicyChangeNOk
//
// stub stub
// +-------+ +---------+ +---------+
// | RESTSubReq | |
// |---------------->| |
// | | |
-// | RESTSubResp | |
-// |<----------------| |
-// | | SubReq |
-// | |------------->|
-// | | |
-// | | SubResp |
-// | |<-------------|
-// | | |
-// | RESTNotif | |
-// |<----------------| |
+// | RESTSubUpdateFail(400 Bad request)
// | | |
// | RESTSubDelReq | |
// |---------------->| |
// |<----------------| |
//
//-----------------------------------------------------------------------------
-func TestRESTSubReqPolicyChangeAndSubDelOk(t *testing.T) {
- CaseBegin("TestRESTSubReqPolicyAndSubDelOk")
+func TestRESTSubReqPolicyChangeNOk(t *testing.T) {
+ CaseBegin("TestRESTSubReqPolicyChangeNOk")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
- Counter{cSubReqToE2, 2},
- Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubRespToXapp, 1},
+ Counter{cSubReqToE2, 1},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubFailToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
Counter{cRestSubDelRespToXapp, 1},
})
- const subReqCount int = 1
-
// Req
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
// Policy change
- instanceId := int64(e2SubsId)
- // GetRESTSubsReqPolicyParams sets some coutners on tc side.
params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
- params.SubsReqParams.SubscriptionDetails[0].InstanceID = &instanceId
+
+ restSubIdUpd := strings.ToUpper(restSubId) // This makes RESTSubReq to fail
+ params.SetSubscriptionID(&restSubIdUpd)
params.SetTimeToWait("w200ms")
- restSubId, e2SubsId = createSubscription(t, xappConn1, e2termConn1, params)
+
+ restSubId2 := xappConn1.SendRESTSubsReq(t, params)
+ assert.Equal(t, restSubId2, "")
// Del
xappConn1.SendRESTSubsDelReq(t, &restSubId)
// Init counter check
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
xappConn1.ExpectRESTNotification(t, restSubId1)
e2termConn1.SendSubsResp(t, crereq1, cremsg1)
e2SubsId1 := xappConn1.WaitRESTNotification(t, restSubId1)
- xapp.Logger.Info("TEST: REST notification received e2SubsId1=%v", e2SubsId1)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId1=%v", e2SubsId1)
// Resp2
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn2.SendSubsResp(t, crereq2, cremsg2)
e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2)
- xapp.Logger.Info("TEST: REST notification received e2SubsId2=%v", e2SubsId2)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId2=%v", e2SubsId2)
// Delete1
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
func TestRESTSubReqAsn1EncodeFail(t *testing.T) {
CaseBegin("TestRESTSubReqAsn1EncodeFail")
- xapp.Logger.Info("Xapp-frame, v0.8.1 sufficient REST API validation")
+ xapp.Logger.Debug("Xapp-frame, v0.8.1 sufficient REST API validation")
}
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cSubDelRespFromE2, 1},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
//Req
mainCtrl.SetResetTestFlag(t, true) // subs.DoNotWaitSubResp will be set TRUE for the subscription
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
e2termConn1.RecvSubsReq(t)
// |<----------------| |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqAndSubDelOkWithRestartInMiddle(t *testing.T) {
CaseBegin("TestRESTSubReqAndSubDelOkWithRestartInMiddle")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 1},
Counter{cRestSubDelRespToXapp, 1},
// Create subscription
restSubId, e2SubsId := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber : %v", restSubId)
// Check subscription
queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
- // When SDL support for the REST Interface is added
- // the submgr restart statement below should be removed
- // from the comment.
-
- // mainCtrl.SimulateRestart(t)
- // xapp.Logger.Debug("mainCtrl.SimulateRestart done")
+ mainCtrl.SimulateRestart(t)
+ xapp.Logger.Debug("mainCtrl.SimulateRestart done")
// Check subscription
queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
// | | | |
//
//-----------------------------------------------------------------------------
+
func TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle(t *testing.T) {
CaseBegin("TestRESTSubReqAndSubDelOkSameActionWithRestartsInMiddle")
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 1},
Counter{cSubRespFromE2, 1},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cMergedSubscriptions, 1},
Counter{cUnmergedSubscriptions, 1},
Counter{cRestSubDelReqFromXapp, 2},
// Create subscription 1
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriber 1 : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriber 1 : %v", restSubId1)
// Create subscription 2 with same action
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
xapp.Subscription.SetResponseCB(xappConn2.SubscriptionRespHandler)
- xappConn2.WaitRESTNotificationForAnySubscriptionId(t)
+ xappConn2.ExpectAnyNotification(t)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
- e2SubsId2 := <-xappConn2.RESTNotification
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
+ e2SubsId2 := xappConn2.WaitAnyRESTNotification(t)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId2)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560", "localhost:13660"})
- // When SDL support for the REST Interface is added
- // the submgr restart statement below should be removed
- // from the comment.
-
- // mainCtrl.SimulateRestart(t)
- // xapp.Logger.Debug("mainCtrl.SimulateRestart done")
+ mainCtrl.SimulateRestart(t)
+ xapp.Logger.Debug("mainCtrl.SimulateRestart done")
// Delete subscription 1, and wait until it has removed the first endpoint
subepcnt := mainCtrl.get_subs_entrypoint_cnt(t, e2SubsId1)
xappConn1.SendRESTSubsDelReq(t, &restSubId1)
mainCtrl.wait_subs_entrypoint_cnt_change(t, e2SubsId1, subepcnt, 10)
- // When SDL support for the REST Interface is added
- // the submgr restart statement below should be removed
- // from the comment.
-
- // mainCtrl.SimulateRestart(t)
- // xapp.Logger.Debug("mainCtrl.SimulateRestart done")
+ mainCtrl.SimulateRestart(t)
+ xapp.Logger.Debug("mainCtrl.SimulateRestart done")
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13660"})
// Delete subscription 2
// |<----------------| |
//
//-----------------------------------------------------------------------------
+
func TestRESTReportSubReqAndSubDelOk(t *testing.T) {
CaseBegin("TestRESTReportSubReqAndSubDelOk")
- subReqCount := 1
+ const subReqCount int = 1
testIndex := 1
RESTReportSubReqAndSubDelOk(t, subReqCount, testIndex)
}
func RESTReportSubReqAndSubDelOk(t *testing.T, subReqCount int, testIndex int) {
- xapp.Logger.Info("TEST: TestRESTReportSubReqAndSubDelOk with testIndex %v", testIndex)
+ xapp.Logger.Debug("TEST: TestRESTReportSubReqAndSubDelOk with testIndex %v", testIndex)
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
e2termConn1.SendSubsResp(t, crereq, cremsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
e2SubsId = append(e2SubsId, instanceId)
resp, _ := xapp.Subscription.QuerySubscriptions()
assert.Equal(t, resp[i].SubscriptionID, (int64)(instanceId))
}
*/
func RESTPolicySubReqAndSubDelOk(t *testing.T, subReqCount int, testIndex int) {
- xapp.Logger.Info("TEST: TestRESTPolicySubReqAndSubDelOk with testIndex %v", testIndex)
+ xapp.Logger.Debug("TEST: TestRESTPolicySubReqAndSubDelOk with testIndex %v", testIndex)
// Req
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- //params := xappConn1.GetRESTSubsReqPolicyParams1(subReqCount)
- //restSubId := xappConn1.SendRESTPolicySubsReq(t, params)
var e2SubsId []uint32
for i := 0; i < subReqCount; i++ {
xappConn1.ExpectRESTNotification(t, restSubId)
e2termConn1.SendSubsResp(t, crereq, cremsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
e2SubsId = append(e2SubsId, instanceId)
}
func TestRESTTwoPolicySubReqAndSubDelOk(t *testing.T) {
- subReqCount := 2
-
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
Counter{cRestSubDelRespToXapp, 1},
})
+ const subReqCount int = 2
+
// Req
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
}
func TestRESTPolicySubReqAndSubDelOkFullAmount(t *testing.T) {
- subReqCount := 19
-
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, 19},
Counter{cSubRespFromE2, 19},
- Counter{cRestSubRespToXapp, 19},
+ Counter{cRestSubNotifToXapp, 19},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, 19},
Counter{cSubDelRespFromE2, 19},
Counter{cRestSubDelRespToXapp, 1},
})
+ const subReqCount int = 19
// Req
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
mainCtrl.VerifyCounterValues(t)
}
+
func TestRESTTwoReportSubReqAndSubDelOk(t *testing.T) {
subReqCount := 2
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cRestSubRespToXapp, uint64(subReqCount)},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cRestSubRespToXapp, uint64(subReqCount)},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
+ Counter{cRestSubRespToXapp, 1},
Counter{cSubReqToE2, uint64(subReqCount)},
Counter{cSubRespFromE2, uint64(subReqCount)},
- Counter{cRestSubRespToXapp, uint64(subReqCount)},
+ Counter{cRestSubNotifToXapp, uint64(subReqCount)},
Counter{cRestSubDelReqFromXapp, 1},
Counter{cSubDelReqToE2, uint64(subReqCount)},
Counter{cSubDelRespFromE2, uint64(subReqCount)},
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- eventTriggerDefinition := "1234"
+ eventTriggerDefinition := []int64{1234, 1}
params.SetSubEventTriggerDefinition(eventTriggerDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
actionId := int64(1)
actionType := "report"
- actionDefinition := "56781"
+ actionDefinition := []int64{5678, 1}
subsequestActionType := "continue"
timeToWait := "w10ms"
params.AppendActionToActionToBeSetupList(actionId, actionType, actionDefinition, subsequestActionType, timeToWait)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
params.SetSubActionIDs(int64(2))
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
Counter{cRestSubDelRespToXapp, 2},
})
+ const e2Timeout int64 = 2
+ const e2RetryCount int64 = 2
+ const routingNeeded bool = true
+
// Req1
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
Counter{cRestSubDelRespToXapp, 2},
})
+ const e2Timeout int64 = 2
+ const e2RetryCount int64 = 2
+ const routingNeeded bool = true
+
// Req1
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
params = xappConn2.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
params.SetMeid("RAN_NAME_1")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- actionDefinition := "5678"
+ actionDefinition := []int64{5678, 1}
params.SetSubActionDefinition(actionDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
// Req2
params = xappConn2.GetRESTSubsReqReportParams(subReqCount)
params.SetMeid("RAN_NAME_1")
- actionDefinition := "56782"
+ actionDefinition := []int64{56782}
params.SetSubActionDefinition(actionDefinition)
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
Counter{cSubReqToE2, 2},
Counter{cSubRespFromE2, 2},
- Counter{cRestSubRespToXapp, 2},
+ Counter{cRestSubNotifToXapp, 2},
Counter{cRestSubDelReqFromXapp, 2},
Counter{cSubDelReqToE2, 2},
Counter{cSubDelRespFromE2, 2},
//Subs Create
restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId1)
queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"})
params.SetMeid("RAN_NAME_1")
params.SetTimeToWait("w200ms")
restSubId2 := xappConn2.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId2)
crereq, cremsg := e2termConn1.RecvSubsReq(t)
xappConn2.ExpectRESTNotification(t, restSubId2)
e2termConn1.SendSubsResp(t, crereq, cremsg)
// | |<-------------|
//
//-----------------------------------------------------------------------------
+
func TestRESTUnpackSubscriptionResponseDecodeFail(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseDecodeFail")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionResponseDecodeFail")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams := &teststube2ap.E2StubSubsFailParams{}
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
// | |<-------------|
//
//-----------------------------------------------------------------------------
+
func TestRESTUnpackSubscriptionResponseUnknownInstanceId(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseUnknownInstanceId")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionResponseUnknownInstanceId")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams := &teststube2ap.E2StubSubsFailParams{}
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, orgInstanceId, 10)
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionResponseNoTransaction(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionResponseNoTransaction")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionResponseNoTransaction")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams := &teststube2ap.E2StubSubsFailParams{}
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionFailureDecodeFail(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureDecodeFail")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionFailureDecodeFail")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams := &teststube2ap.E2StubSubsFailParams{}
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionFailureUnknownInstanceId(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureUnknownInstanceId")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionFailureUnknownInstanceId")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionFailureNoTransaction(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionFailureNoTransaction")
- subReqCount := 1
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionFailureNoTransaction")
+ const subReqCount int = 1
// Req
params := xappConn1.GetRESTSubsReqReportParams(subReqCount)
_, cremsg = e2termConn1.RecvSubsReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
// Subscription already created in E2 Node.
fparams.SetCauseVal(0, 1, 3) // CauseRIC / duplicate-action
e2termConn1.SendSubsDelResp(t, delreq, delmsg)
instanceId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", instanceId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", instanceId)
// Wait that subs is cleaned
mainCtrl.wait_subs_clean(t, crereq.RequestId.InstanceId, 10)
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteResponseDecodeFail(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseDecodeFail")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteResponseDecodeFail")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteResponseUnknownInstanceId")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteResponseNoTransaction(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteResponseNoTransaction")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteResponseNoTransaction")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteFailureDecodeFail(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteFailureDecodeFail")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteFailureDecodeFail")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteailureUnknownInstanceId")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
//
//-----------------------------------------------------------------------------
func TestRESTUnpackSubscriptionDeleteFailureNoTransaction(t *testing.T) {
- xapp.Logger.Info("TEST: TestRESTUnpackSubscriptionDeleteFailureNoTransaction")
+ xapp.Logger.Debug("TEST: TestRESTUnpackSubscriptionDeleteFailureNoTransaction")
// Req
var params *teststube2ap.RESTSubsReqParams = nil
mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
Counter{cRestSubReqFromXapp, 1},
- Counter{cSubDelReqToE2, 1},
- Counter{cSubDelFailFromE2, 1},
Counter{cRestSubRespToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
})
- subReqCount := 1
+ const subReqCount int = 1
var params *teststube2ap.RESTSubsReqParams = nil
params = xappConn1.GetRESTSubsReqReportParams(subReqCount)
// Req
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId)
// E2t: Receive SubsDelReq
- delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
- xappConn1.ExpectRESTNotification(t, restSubId)
-
- // Subscription does not exist in in E2 Node.
- e2termConn1.SendSubsDelFail(t, delreq, delmsg)
+ xappConn1.ExpectRESTNotificationNok(t, restSubId, "allFail")
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", e2SubsId)
e2ap_wrapper.AllowE2apToProcess(e2ap_wrapper.SUB_REQ, true)
// Wait that subs is cleaned
mainCtrl.VerifyCounterValues(t)
}
+func TestRESTSubReqPolicyUpdateTimeoutAndSubDelOkSameAction(t *testing.T) {
+ CaseBegin("TestRESTSubReqPolicyUpdateTimeoutAndSubDelOkSameAction")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubFailNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cSubDelRespFromE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ const e2Timeout int64 = 1
+ const e2RetryCount int64 = 0
+ const routingNeeded bool = false
+
+ // Req1
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+
+ // Subs Create
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send REST subscribe request for subscriberId : %v", restSubId)
+
+ crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
+ xappConn1.ExpectRESTNotification(t, restSubId)
+ e2termConn1.SendSubsResp(t, crereq1, cremsg1)
+ e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
+
+ // Policy change
+ params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+ params.SetSubscriptionID(&restSubId)
+ params.SetTimeToWait("w200ms")
+ restSubId = xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send REST subscribe request for subscriberId : %v", restSubId)
+
+ crereq1, cremsg1 = e2termConn1.RecvSubsReq(t)
+ xappConn1.ExpectRESTNotification(t, restSubId)
+ // SubsResp is missing, e2SubsId will be 0
+ zeroE2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", zeroE2SubsId)
+
+ // Del
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ mainCtrl.VerifyCounterValues(t)
+}
+
+//-----------------------------------------------------------------------------
+// TestPolicyUpdateRESTSubReqAndSubDelOkWithRestartInMiddle
+//
+// stub stub
+// +-------+ +---------+ +---------+
+// | xapp | | submgr | | e2term |
+// +-------+ +---------+ +---------+
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | | |
+// | | SubResp |
+// | |<-------------|
+// | | |
+// | RESTNotif | |
+// |<----------------| |
+// | | |
+// | RESTSubReq | |
+// |---------------->| |
+// | | |
+// | RESTSubResp | |
+// |<----------------| |
+// | | SubReq |
+// | |------------->|
+// | |
+// | Submgr restart |
+// | | |
+// | RESTSubDelReq | |
+// |---------------->| |
+// | | |
+// | | SubDelReq |
+// | |------------->|
+// | | |
+// | | SubDelResp |
+// | |<-------------|
+// | | |
+// | RESTSubDelResp | |
+// |<----------------| |
+//
+//-----------------------------------------------------------------------------
+
+func TestPolicyUpdateRESTSubReqAndSubDelOkWithRestartInMiddle(t *testing.T) {
+ CaseBegin("TestPolicyUpdateRESTSubReqAndSubDelOkWithRestartInMiddle")
+
+ mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+ Counter{cRestSubReqFromXapp, 2},
+ Counter{cRestSubRespToXapp, 2},
+ Counter{cSubReqToE2, 2},
+ Counter{cSubRespFromE2, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubNotifToXapp, 1},
+ Counter{cRestSubDelReqFromXapp, 1},
+ Counter{cSubDelReqToE2, 1},
+ Counter{cRestSubDelRespToXapp, 1},
+ })
+
+ // Remove possible existing subscription
+ mainCtrl.removeExistingSubscriptions(t)
+
+ const e2Timeout int64 = 1
+ const e2RetryCount int64 = 0
+ const routingNeeded bool = false
+
+ // Req1
+ params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+ // Create subscription
+ restSubId := xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send REST subscribe request for subscriberId : %v", restSubId)
+
+ crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
+ xappConn1.ExpectRESTNotification(t, restSubId)
+ e2termConn1.SendSubsResp(t, crereq1, cremsg1)
+ e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
+
+ // Check subscription
+ queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
+
+ // Policy change
+ params = xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
+ params.SetSubscriptionDirectives(e2Timeout, e2RetryCount, routingNeeded)
+ params.SetSubscriptionID(&restSubId)
+ params.SetTimeToWait("w200ms")
+ mainCtrl.SetResetTestFlag(t, true) // subs.DoNotWaitSubResp will be set TRUE for the subscription
+ restSubId = xappConn1.SendRESTSubsReq(t, params)
+ xapp.Logger.Debug("Send REST subscribe request for subscriberId : %v", restSubId)
+
+ crereq1, cremsg1 = e2termConn1.RecvSubsReq(t)
+ mainCtrl.SetResetTestFlag(t, false)
+
+ // SubsResp is missing due to submgr restart
+
+ mainCtrl.SimulateRestart(t)
+ xapp.Logger.Debug("mainCtrl.SimulateRestart done")
+
+ // Check subscription
+ queryXappSubscription(t, int64(e2SubsId), "RAN_NAME_1", []string{"localhost:13560"})
+
+ xapp.Logger.Debug("Here 1")
+ //<-time.After(3 * time.Second)
+ xapp.Logger.Debug("Here 2")
+
+ // Delete subscription
+ xappConn1.SendRESTSubsDelReq(t, &restSubId)
+ delreq, delmsg := e2termConn1.RecvSubsDelReq(t)
+ e2termConn1.SendSubsDelResp(t, delreq, delmsg)
+
+ //Wait that subs is cleaned
+ waitSubsCleanup(t, e2SubsId, 10)
+
+ mainCtrl.VerifyCounterValues(t)
+}
+
////////////////////////////////////////////////////////////////////////////////////
// Services for UT cases
////////////////////////////////////////////////////////////////////////////////////
params = fromXappConn.GetRESTSubsReqReportParams(subReqCount)
}
restSubId := fromXappConn.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId)
crereq1, cremsg1 := toE2termConn.RecvSubsReq(t)
fromXappConn.ExpectRESTNotification(t, restSubId)
toE2termConn.SendSubsResp(t, crereq1, cremsg1)
e2SubsId := fromXappConn.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
return restSubId, e2SubsId
}
xapp.Subscription.SetResponseCB(xappConn2.SubscriptionRespHandler)
restSubId := xappConn2.SendRESTSubsReq(t, params)
xappConn2.ExpectRESTNotification(t, restSubId)
- xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId)
+ xapp.Logger.Debug("Send REST subscriber request for subscriberId : %v", restSubId)
e2SubsId := xappConn2.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
return restSubId, e2SubsId
}
func createXapp1PolicySubscription(t *testing.T) (string, uint32) {
+
params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount)
restSubId := xappConn1.SendRESTSubsReq(t, params)
- xapp.Logger.Info("Send REST Policy subscriber request for subscriberId : %v", restSubId)
+ xapp.Logger.Debug("Send REST Policy subscriber request for subscriberId : %v", restSubId)
crereq1, cremsg1 := e2termConn1.RecvSubsReq(t)
xappConn1.ExpectRESTNotification(t, restSubId)
e2termConn1.SendSubsResp(t, crereq1, cremsg1)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("REST notification received e2SubsId=%v", e2SubsId)
return restSubId, e2SubsId
}
xappConn1.ExpectRESTNotification(t, restSubId)
e2termConn1.SendSubsDelResp(t, delreq1, delmsg1)
e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
- xapp.Logger.Info("TEST: REST notification received e2SubsId=%v", e2SubsId)
+ xapp.Logger.Debug("TEST: REST notification received e2SubsId=%v", e2SubsId)
return restSubId, e2SubsId
}
var e2SubsId []uint32
for i := 0; i < count; i++ {
- xapp.Logger.Info("TEST: %d ===================================== BEGIN CRE ============================================", i+1)
+ xapp.Logger.Debug("TEST: %d ===================================== BEGIN CRE ============================================", i+1)
crereq, cremsg := toE2termConn.RecvSubsReq(t)
fromXappConn.ExpectRESTNotification(t, restSubId)
toE2termConn.SendSubsResp(t, crereq, cremsg)
instanceId := fromXappConn.WaitRESTNotification(t, restSubId)
e2SubsId = append(e2SubsId, instanceId)
- xapp.Logger.Info("TEST: %v", e2SubsId)
- xapp.Logger.Info("TEST: %d ===================================== END CRE ============================================", i+1)
+ xapp.Logger.Debug("TEST: %v", e2SubsId)
+ xapp.Logger.Debug("TEST: %d ===================================== END CRE ============================================", i+1)
<-time.After(100 * time.Millisecond)
}
return e2SubsId
func sendAndReceiveMultipleE2DelReqs(t *testing.T, e2SubsIds []uint32, toE2termConn *teststube2ap.E2Stub) {
for i := 0; i < len(e2SubsIds); i++ {
- xapp.Logger.Info("TEST: %d ===================================== BEGIN DEL ============================================", i+1)
+ xapp.Logger.Debug("TEST: %d ===================================== BEGIN DEL ============================================", i+1)
delreq, delmsg := toE2termConn.RecvSubsDelReq(t)
toE2termConn.SendSubsDelResp(t, delreq, delmsg)
<-time.After(1 * time.Second)
- xapp.Logger.Info("TEST: %d ===================================== END DEL ============================================", i+1)
+ xapp.Logger.Debug("TEST: %d ===================================== END DEL ============================================", i+1)
<-time.After(100 * time.Millisecond)
}