+ } else {
+ nbIdentity = ranNameIdentity
+ }
+
+ nbIdData, err := proto.Marshal(nbIdentity)
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+ err = w.sdl.AddMember(entity.GetNodeType().String(), nbIdData)
+ if err != nil {
+ return common.NewInternalError(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
+ }
+
+ err = w.sdl.Set(pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func buildCellKeysToRemove(inventoryName string, servedNrCellsToRemove []*entities.ServedNRCell) []string {
+
+ 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 buildUpdateNodebInfoPairs(nodebInfo *entities.NodebInfo) ([]interface{}, error) {
+ nodebNameKey, rNibErr := common.ValidateAndBuildNodeBNameKey(nodebInfo.GetRanName())
+
+ if rNibErr != nil {
+ return []interface{}{}, rNibErr
+ }
+
+ nodebIdKey, buildNodebIdKeyError := common.ValidateAndBuildNodeBIdKey(nodebInfo.GetNodeType().String(), nodebInfo.GlobalNbId.GetPlmnId(), nodebInfo.GlobalNbId.GetNbId())
+
+ data, err := proto.Marshal(nodebInfo)
+
+ if err != nil {
+ return []interface{}{}, common.NewInternalError(err)
+ }
+
+ pairs := []interface{}{nodebNameKey, data}
+
+ if buildNodebIdKeyError == nil {
+ pairs = append(pairs, nodebIdKey, data)
+ }
+
+ return pairs, nil
+}
+
+/*
+UpdateNodebInfo...
+*/
+func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) error {
+
+ pairs, err := buildUpdateNodebInfoPairs(nodebInfo)
+
+ if err != nil {
+ return err
+ }
+
+ err = w.sdl.Set(pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)