Fix for E2 Connection status counters 18/7418/1
authorAnssi Mannila <anssi.mannila@nokia.com>
Fri, 17 Dec 2021 10:45:25 +0000 (12:45 +0200)
committerAnssi Mannila <anssi.mannila@nokia.com>
Fri, 17 Dec 2021 10:45:57 +0000 (12:45 +0200)
Change-Id: I99a5fc0cb167c1989f115165282b3ec4971c4472
Signed-off-by: Anssi Mannila <anssi.mannila@nokia.com>
pkg/control/e2if_state.go
pkg/control/ut_messaging_test.go

index 0f43056..5259618 100644 (file)
@@ -67,7 +67,8 @@ func (e *E2IfState) NotificationCb(ch string, events ...string) {
                return
        }
 
-       if strings.Contains(events[0], "_CONNECTED") {
+       if strings.Contains(events[0], "_CONNECTED") && !strings.Contains(events[0], "_CONNECTED_SETUP_FAILED") {
+               e.control.UpdateCounter(cE2StateChangedToUp)
                nbId, err := ExtractNbiIdFromString(events[0])
                if err != nil {
                        xapp.Logger.Error("NotificationCb CONNECTED len(nbId) == 0 ")
@@ -76,6 +77,7 @@ func (e *E2IfState) NotificationCb(ch string, events ...string) {
                xapp.Logger.Debug("E2 CONNECTED. NbId=%s", nbId)
                e.NbIdMap[nbId] = nbId
        } else if strings.Contains(events[0], "_DISCONNECTED") {
+               e.control.UpdateCounter(cE2StateChangedToDown)
                nbId, err := ExtractNbiIdFromString(events[0])
                if err != nil {
                        xapp.Logger.Error("NotificationCb DISCONNECTED len(nbId) == 0 ")
@@ -113,7 +115,6 @@ func (e *E2IfState) ReadE2ConfigurationFromRnib() {
                if e.isNodeBActive(nbIdentity.InventoryName) == false {
                        if _, ok := e.NbIdMap[nbIdentity.InventoryName]; ok {
                                delete(e.NbIdMap, nbIdentity.InventoryName)
-                               e.control.UpdateCounter(cE2StateChangedToDown)
                                xapp.Logger.Debug("E2 connection DISCONNETED: %v", nbIdentity.InventoryName)
 
                                // Delete all subscriptions related to InventoryName/nbId
@@ -124,7 +125,6 @@ func (e *E2IfState) ReadE2ConfigurationFromRnib() {
 
                if _, ok := e.NbIdMap[nbIdentity.InventoryName]; !ok {
                        e.NbIdMap[nbIdentity.InventoryName] = nbIdentity.InventoryName
-                       e.control.UpdateCounter(cE2StateChangedToDown)
                        xapp.Logger.Debug("E2 connection CONNECTED: %v", nbIdentity.InventoryName)
                }
        }
index 2a3ad96..79eccd2 100644 (file)
@@ -46,6 +46,10 @@ func TestSuiteSetup(t *testing.T) {
 }
 func TestRanStatusChangeViaSDLNotification(t *testing.T) {
 
+       mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
+               Counter{cE2StateChangedToUp, 3},
+       })
+
        // Current UT test cases use these ran names
        xappRnibMock.CreateGnb("RAN_NAME_1", entities.ConnectionStatus_DISCONNECTED)
        xappRnibMock.CreateGnb("RAN_NAME_11", entities.ConnectionStatus_DISCONNECTED)
@@ -57,6 +61,8 @@ func TestRanStatusChangeViaSDLNotification(t *testing.T) {
        mainCtrl.SetE2State(t, "RAN_NAME_1_CONNECTED")
        mainCtrl.SetE2State(t, "RAN_NAME_2_CONNECTED")
        mainCtrl.SetE2State(t, "RAN_NAME_11_CONNECTED")
+
+       mainCtrl.VerifyCounterValues(t)
 }
 
 //-----------------------------------------------------------------------------
@@ -83,6 +89,8 @@ func TestRESTSubReqAfterE2ConnBreak(t *testing.T) {
        mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{
                Counter{cRestSubReqFromXapp, 1},
                Counter{cRestReqRejDueE2Down, 1},
+               Counter{cE2StateChangedToDown, 1},
+               Counter{cE2StateChangedToUp, 1},
        })
 
        // E2 disconnect after E2term has received response
@@ -95,8 +103,8 @@ func TestRESTSubReqAfterE2ConnBreak(t *testing.T) {
        // Restore E2 connection for following test cases
        mainCtrl.SetE2State(t, "RAN_NAME_1_CONNECTED")
 
-       mainCtrl.VerifyCounterValues(t)
        mainCtrl.VerifyAllClean(t)
+       mainCtrl.VerifyCounterValues(t)
        //os.Exit(0)
 }
 
@@ -135,6 +143,8 @@ func TestRESTSubReqE2ConnBreak(t *testing.T) {
                Counter{cSubReqToE2, 1},
                Counter{cSubRespFromE2, 1},
                Counter{cRestSubFailNotifToXapp, 1},
+               Counter{cE2StateChangedToDown, 1},
+               Counter{cE2StateChangedToUp, 1},
        })
 
        // Req
@@ -212,6 +222,8 @@ func TestRESTSubscriptionDeleteAfterE2ConnectionBreak(t *testing.T) {
                Counter{cRestSubNotifToXapp, 1},
                Counter{cRestSubDelReqFromXapp, 1},
                Counter{cRestSubDelRespToXapp, 1},
+               Counter{cE2StateChangedToDown, 1},
+               Counter{cE2StateChangedToUp, 1},
        })
 
        // Req
@@ -289,6 +301,7 @@ func TestRESTOtherE2ConnectionChanges(t *testing.T) {
                Counter{cSubDelReqToE2, 1},
                Counter{cSubDelRespFromE2, 1},
                Counter{cRestSubDelRespToXapp, 1},
+               Counter{cE2StateChangedToUp, 1},
        })
 
        // Req
@@ -300,7 +313,7 @@ func TestRESTOtherE2ConnectionChanges(t *testing.T) {
        e2termConn1.SendSubsResp(t, crereq, cremsg)
        e2SubsId := xappConn1.WaitRESTNotification(t, restSubId)
 
-       // Submgr should not react any other connection state changes than CONNECTED and DISCONNECTED
+       // Submgr should not react to any other connection state changes than CONNECTED and DISCONNECTED
        mainCtrl.SetE2State(t, "RAN_NAME_1_CONNECTED_SETUP_FAILED")
        mainCtrl.SetE2State(t, "RAN_NAME_1_CONNECTING")
        mainCtrl.SetE2State(t, "RAN_NAME_1_SHUTTING_DOWN")