From cbf16c0a9856e0159d094a19ed92e05f92905d48 Mon Sep 17 00:00:00 2001 From: subhash kumar singh Date: Mon, 9 May 2022 19:18:49 +0000 Subject: [PATCH] Handle received update List NodeConfig Implemented handling of e2nodebconfig for receieved IEs in update list. Each IEs is converted to respective entities updated to store inside NodebInfo. Signed-off-by: subhash kumar singh Change-Id: Ia186648117d1494bfb67181258d85f03e47a4f05 --- .../e2_node_config_update_notification_handler.go | 36 ++++++++++++++++++++++ ...node_config_update_notification_handler_test.go | 9 +++--- .../e2NodeConfigurationUpdate.xml | 4 +-- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go index 21428b0..b9f25df 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler.go @@ -73,6 +73,7 @@ func (e *E2nodeConfigUpdateNotificationHandler) Handle(request *models.Notificat func (e *E2nodeConfigUpdateNotificationHandler) updateE2nodeConfig(e2nodeConfig *models.E2nodeConfigurationUpdateMessage, nodebInfo *entities.NodebInfo) { e.handleAddConfig(e2nodeConfig, nodebInfo) + e.handleUpdateConfig(e2nodeConfig, nodebInfo) e.rNibDataService.UpdateNodebInfoAndPublish(nodebInfo) } @@ -121,6 +122,41 @@ func (e *E2nodeConfigUpdateNotificationHandler) handleAddConfig(e2nodeConfig *mo } } +func (e *E2nodeConfigUpdateNotificationHandler) handleUpdateConfig(e2nodeConfig *models.E2nodeConfigurationUpdateMessage, nodebInfo *entities.NodebInfo) { + updateList := e2nodeConfig.ExtractConfigUpdateList() + if nodebInfo.GetNodeType() == entities.Node_GNB { + for i := 0; i < len(updateList); i++ { + u := updateList[i] + if nodebInfo.GetNodeType() == entities.Node_GNB { + for j := 0; j < len(nodebInfo.GetGnb().NodeConfigs); j++ { + if e.compareConfigIDs(u, *nodebInfo.GetGnb().NodeConfigs[j]) { + e.logger.Debugf("#E2nodeConfigUpdateNotificationHandler.Handle - item at position [%d] should be updated", i) + nodebInfo.GetGnb().NodeConfigs[i] = &u + break + } else { + e.logger.Debugf("#E2nodeConfigUpdateNotificationHandler.Handle - dint match") + } + } + } + } + } else { + for i := 0; i < len(updateList); i++ { + u := updateList[i] + if nodebInfo.GetNodeType() == entities.Node_ENB { + for j := 0; j < len(nodebInfo.GetEnb().NodeConfigs); j++ { + v := nodebInfo.GetEnb().NodeConfigs[j] + if e.compareConfigIDs(u, *v) { + e.logger.Debugf("#E2nodeConfigUpdateNotificationHandler.Handle - item at position [%d] should be updated", i) + nodebInfo.GetEnb().NodeConfigs[i] = &u + break + } + } + } + + } + } +} + func (e *E2nodeConfigUpdateNotificationHandler) parseE2NodeConfigurationUpdate(payload []byte) (*models.E2nodeConfigurationUpdateMessage, error) { e2nodeConfig := models.E2nodeConfigurationUpdateMessage{} err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2nodeConfig.E2APPDU)) diff --git a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler_test.go b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler_test.go index 870bec5..2eeb546 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler_test.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_node_config_update_notification_handler_test.go @@ -22,7 +22,6 @@ import ( "e2mgr/configuration" "e2mgr/mocks" "e2mgr/models" - "e2mgr/rmrCgo" "e2mgr/services" "e2mgr/tests" "e2mgr/utils" @@ -93,7 +92,7 @@ func TestE2nodeConfigUpdatetParseFail(t *testing.T) { func TestHandleAddConfig(t *testing.T) { e2NodeConfigUpdateXml := utils.ReadXmlFile(t, E2nodeConfigUpdateXmlPath) - handler, readerMock, writerMock, rmrMessengerMock := initE2nodeConfigMocks(t) + handler, readerMock, writerMock, _ := initE2nodeConfigMocks(t) var nodebInfo = &entities.NodebInfo{ RanName: gnbNodebRanName, AssociatedE2TInstanceAddress: e2tInstanceFullAddress, @@ -105,8 +104,6 @@ func TestHandleAddConfig(t *testing.T) { } readerMock.On("GetNodeb", gnbNodebRanName).Return(nodebInfo, nil) writerMock.On("UpdateNodebInfoAndPublish", mock.Anything).Return(nil) - var errEmpty error - rmrMessengerMock.On("SendMsg", mock.Anything, mock.Anything).Return(&rmrCgo.MBuf{}, errEmpty) notificationRequest := &models.NotificationRequest{RanName: gnbNodebRanName, Payload: append([]byte(""), e2NodeConfigUpdateXml...)} @@ -115,6 +112,10 @@ func TestHandleAddConfig(t *testing.T) { t.Logf("len of addtionList : %d", len(nodebInfo.GetGnb().NodeConfigs)) assert.Equal(t, 5, len(nodebInfo.GetGnb().NodeConfigs)) + assert.Equal(t, "nginterf", nodebInfo.GetGnb().NodeConfigs[0].GetE2NodeComponentInterfaceTypeNG().AmfName) + assert.Equal(t, "72 65 71 70 61 72 73", string(nodebInfo.GetGnb().NodeConfigs[0].E2NodeComponentRequestPart)) + assert.Equal(t, "72 65 73 70 61 72 73", string(nodebInfo.GetGnb().NodeConfigs[0].E2NodeComponentResponsePart)) + writerMock.AssertExpectations(t) readerMock.AssertExpectations(t) } diff --git a/E2Manager/tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml b/E2Manager/tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml index 77844e3..2dc0276 100644 --- a/E2Manager/tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml +++ b/E2Manager/tests/resources/configurationUpdate/e2NodeConfigurationUpdate.xml @@ -178,8 +178,8 @@ - 72 65 71 70 61 72 74 - 72 65 73 70 61 72 74 + 72 65 71 70 61 72 73 + 72 65 73 70 61 72 73 -- 2.16.6