+ pairs = append(pairs, key, data)
+ }
+
+ pairs, rNibErr = appendEnbCells(nodebInfo.RanName, nodebInfo.GetEnb().GetServedCells(), pairs)
+ if rNibErr != nil {
+ return rNibErr
+ }
+
+ channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanAddedEvent)
+ err = w.sdl.SetAndPublish(channelsAndEvents, pairs)
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) UpdateNbIdentities(nodeType entities.Node_Type, oldNbIdentities []*entities.NbIdentity, newNbIdentities []*entities.NbIdentity) error {
+
+ nbIdIdentitiesToRemove, err := w.buildNbIdentitiesMembers(oldNbIdentities)
+ if err != nil {
+ return err
+ }
+
+ err = w.sdl.RemoveMember(nodeType.String(), nbIdIdentitiesToRemove[:]...)
+ if err != nil {
+ return err
+ }
+
+ nbIdIdentitiesToAdd, err := w.buildNbIdentitiesMembers(newNbIdentities)
+ if err != nil {
+ return err
+ }
+
+ err = w.sdl.AddMember(nodeType.String(), nbIdIdentitiesToAdd[:]...)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) UpdateGnbCells(nodebInfo *entities.NodebInfo, servedNrCells []*entities.ServedNRCell) error {
+
+ pairs, err := buildUpdateNodebInfoPairs(nodebInfo)
+
+ if err != nil {
+ return err
+ }
+
+ pairs, err = appendGnbCells(nodebInfo.RanName, servedNrCells, pairs)
+
+ if err != nil {
+ return err
+ }
+
+ channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanUpdatedEvent)
+ err = w.sdl.SetAndPublish(channelsAndEvents, pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func buildServedNRCellKeysToRemove(inventoryName string, servedNrCellsToRemove []*entities.ServedNRCell) []string {
+
+ var cellKeysToRemove []string
+
+ for _, cell := range servedNrCellsToRemove {
+
+ key, _ := common.ValidateAndBuildNrCellIdKey(cell.GetServedNrCellInformation().GetCellId())
+
+ if len(key) != 0 {
+ cellKeysToRemove = append(cellKeysToRemove, key)
+ }
+
+ key, _ = common.ValidateAndBuildCellNamePciKey(inventoryName, cell.GetServedNrCellInformation().GetNrPci())
+
+ if len(key) != 0 {
+ cellKeysToRemove = append(cellKeysToRemove, key)
+ }
+ }
+
+ return cellKeysToRemove
+}
+
+func buildServedCellInfoKeysToRemove(inventoryName string, servedCellsToRemove []*entities.ServedCellInfo) []string {
+
+ var cellKeysToRemove []string
+
+ for _, cell := range servedCellsToRemove {
+
+ key, _ := common.ValidateAndBuildCellIdKey(cell.GetCellId())
+
+ if len(key) != 0 {
+ cellKeysToRemove = append(cellKeysToRemove, key)