+func (h *UpdateGnbRequestHandler) updateGnbCells(nodebInfo *entities.NodebInfo, updateGnbRequest models.UpdateGnbRequest) error {
+
+ ranName := nodebInfo.RanName
+ gnb := nodebInfo.GetGnb()
+
+ if gnb == nil {
+ h.logger.Errorf("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - nodeb missing gnb configuration", ranName)
+ return e2managererrors.NewInternalError()
+ }
+
+ if len(gnb.ServedNrCells) != 0 {
+ err := h.rNibDataService.RemoveServedNrCells(ranName, gnb.ServedNrCells)
+
+ if err != nil {
+ h.logger.Errorf("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - Failed removing served nr cells", ranName)
+ return e2managererrors.NewRnibDbError()
+ }
+ }
+
+ gnb.ServedNrCells = updateGnbRequest.ServedNrCells
+
+ err := h.rNibDataService.UpdateGnbCells(nodebInfo, updateGnbRequest.ServedNrCells)
+
+ if err != nil {
+ h.logger.Errorf("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - Failed updating GNB cells. Error: %s", ranName, err)
+ return e2managererrors.NewRnibDbError()
+ }
+
+ h.logger.Infof("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - Successfully updated GNB cells", ranName)
+ return nil
+}
+
+func (h *UpdateGnbRequestHandler) validateRequestBody(updateGnbRequest models.UpdateGnbRequest) error {