From 6edbbe7b215b1fc0cde44a02960a9dfeb72cfaf9 Mon Sep 17 00:00:00 2001 From: "naman.gupta" Date: Wed, 26 Apr 2023 16:44:43 +0530 Subject: [PATCH] Fixing the E2 reset notification Fixing the E2 reset notification event Signed-off-by: naman.gupta Change-Id: I015eda53f5006baf949f4cd24ad49e4833879f76 --- E2Manager/build-e2mgr-ubuntu.sh | 2 +- .../rmrmsghandlers/e2_reset_request_handler_test.go | 16 +++++++++++----- .../managers/e2_reset_status_change_manager_test.go | 1 + E2Manager/managers/ran_connect_status_change_manager.go | 3 +++ 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/E2Manager/build-e2mgr-ubuntu.sh b/E2Manager/build-e2mgr-ubuntu.sh index f984587..16fa29f 100755 --- a/E2Manager/build-e2mgr-ubuntu.sh +++ b/E2Manager/build-e2mgr-ubuntu.sh @@ -73,7 +73,7 @@ export GODEBUG=cgocheck=2,clobberfree=1,gcstoptheworld=2,allocfreetrace=0 export RMR_SEED_RT=$(pwd)/router_test.txt # writes to coverage.txt by default # SonarCloud accepts the text format -go-acc $(go list ./... | grep -vE '(/mocks|/tests|/e2managererrors|/enums)' ) +go-acc -- -v $(go list ./... | grep -vE '(/mocks|/tests|/e2managererrors|/enums)' ) # TODO: drop rewrite of path prefix when SonarScanner is extended # rewrite the module name to a directory name in the coverage report diff --git a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go index cc9722e..c96fbb8 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler_test.go @@ -37,7 +37,7 @@ const ( E2ResetXmlPath = "../../tests/resources/reset/reset-request.xml" ) -func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock) { +func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks.RnibReaderMock, *mocks.RnibWriterMock, *mocks.RmrMessengerMock, *mocks.RanAlarmServiceMock) { logger := tests.InitLog(t) config := &configuration.Configuration{ RnibRetryIntervalMs: 10, @@ -56,12 +56,12 @@ func initE2ResetMocks(t *testing.T) (*E2ResetRequestNotificationHandler, *mocks. ranConnectStatusChangeManager := managers.NewRanConnectStatusChangeManager(logger, rnibDataService, ranListManager, ranAlarmService) ranResetManager := managers.NewRanResetManager(logger, rnibDataService, ranConnectStatusChangeManager) handler := NewE2ResetRequestNotificationHandler(logger, rnibDataService, config, rmrSender, ranResetManager) - return handler, readerMock, writerMock, rmrMessengerMock + return handler, readerMock, writerMock, rmrMessengerMock, ranAlarmService } func TestE2ResettNotificationHandler(t *testing.T) { e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2ResetMocks(t) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -78,6 +78,8 @@ func TestE2ResettNotificationHandler(t *testing.T) { var errEmpty error rmrMessage := &rmrCgo.MBuf{} rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} handler.Handle(notificationRequest) readerMock.AssertExpectations(t) @@ -88,7 +90,7 @@ func TestE2ResettNotificationHandler(t *testing.T) { func TestE2ResettNotificationHandler_UpdateStatus_Connected(t *testing.T) { e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2ResetMocks(t) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -108,6 +110,8 @@ func TestE2ResettNotificationHandler_UpdateStatus_Connected(t *testing.T) { var errEmpty error rmrMessage := &rmrCgo.MBuf{} rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} handler.Handle(notificationRequest) readerMock.AssertCalled(t, "GetNodeb", mock.Anything) @@ -117,7 +121,7 @@ func TestE2ResettNotificationHandler_UpdateStatus_Connected(t *testing.T) { func TestE2ResettNotificationHandler_Successful_Reset_Response(t *testing.T) { e2ResetXml := utils.ReadXmlFile(t, E2ResetXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2ResetMocks(t) + handler, readerMock, writerMock, rmrMessengerMock, ranAlarmServiceMock := initE2ResetMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -137,6 +141,8 @@ func TestE2ResettNotificationHandler_Successful_Reset_Response(t *testing.T) { var errEmpty error rmrMessage := &rmrCgo.MBuf{} rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(rmrMessage, errEmpty) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) + ranAlarmServiceMock.On("SetConnectivityChangeAlarm", mock.Anything).Return(nil) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2ResetXml...)} handler.Handle(notificationRequest) readerMock.AssertCalled(t, "GetNodeb", mock.Anything) diff --git a/E2Manager/managers/e2_reset_status_change_manager_test.go b/E2Manager/managers/e2_reset_status_change_manager_test.go index 7b2a1ce..d09eb32 100644 --- a/E2Manager/managers/e2_reset_status_change_manager_test.go +++ b/E2Manager/managers/e2_reset_status_change_manager_test.go @@ -54,6 +54,7 @@ func TestE2ResetStatusChangeSucceeds(t *testing.T) { origNodebInfo := &entities.NodebInfo{RanName: ranName, GlobalNbId: &entities.GlobalNbId{PlmnId: "xxx", NbId: "yyy"}, ConnectionStatus: entities.ConnectionStatus_CONNECTING} var rnibErr error readerMock.On("GetNodeb", ranName).Return(origNodebInfo, rnibErr) + writerMock.On("UpdateNodebInfoOnConnectionStatusInversion", mock.Anything, mock.Anything).Return(nil) updatedNodebInfo1 := *origNodebInfo updatedNodebInfo1.ConnectionStatus = entities.ConnectionStatus_UNDER_RESET writerMock.On("UpdateNodebInfo", mock.Anything).Return(rnibErr) diff --git a/E2Manager/managers/ran_connect_status_change_manager.go b/E2Manager/managers/ran_connect_status_change_manager.go index d3d596b..03c12a2 100644 --- a/E2Manager/managers/ran_connect_status_change_manager.go +++ b/E2Manager/managers/ran_connect_status_change_manager.go @@ -30,6 +30,7 @@ import ( const ( CONNECTED_RAW_EVENT = "CONNECTED" DISCONNECTED_RAW_EVENT = "DISCONNECTED" + UNDER_RESET_RAW_EVENT = "UNDER_RESET" NONE_RAW_EVENT = "NONE" ) @@ -134,6 +135,8 @@ func (m *RanConnectStatusChangeManager) setEvent(nodebInfo *entities.NodebInfo, event = nodebInfo.RanName + "_" + CONNECTED_RAW_EVENT } else if currentConnectionStatus == entities.ConnectionStatus_CONNECTED && nextState != entities.ConnectionStatus_CONNECTED { event = nodebInfo.RanName + "_" + DISCONNECTED_RAW_EVENT + } else if nextState == entities.ConnectionStatus_UNDER_RESET { + event = nodebInfo.RanName + "_" + UNDER_RESET_RAW_EVENT } else { event = NONE_RAW_EVENT } -- 2.16.6