X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fupdate_gnb_request_handler.go;h=5e382b3abd76b4826622a98d546dde339130234e;hb=64dc6b9da7e913c3ea89671be12a33b6d2b8c6f0;hp=e22925f07f24c6cec7887154ea6177e4180ee130;hpb=08bbf91d9f5afd6ecd6eeb9bcc8c160b8242d1ec;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/httpmsghandlers/update_gnb_request_handler.go b/E2Manager/handlers/httpmsghandlers/update_gnb_request_handler.go index e22925f..5e382b3 100644 --- a/E2Manager/handlers/httpmsghandlers/update_gnb_request_handler.go +++ b/E2Manager/handlers/httpmsghandlers/update_gnb_request_handler.go @@ -68,27 +68,48 @@ func (h *UpdateGnbRequestHandler) Handle(request models.Request) (models.IRespon return nil, e2managererrors.NewResourceNotFoundError() } - ranName:= nodebInfo.RanName + err = h.updateGnbCells(nodebInfo, updateGnbRequest) + + if err != nil { + return nil, err + } + + return models.NewNodebResponse(nodebInfo), nil +} + +func (h *UpdateGnbRequestHandler) updateGnbCells(nodebInfo *entities.NodebInfo, updateGnbRequest models.UpdateGnbRequest) error { + + ranName := nodebInfo.RanName gnb := nodebInfo.GetGnb() if gnb == nil { - h.logger.Errorf("#UpdateGnbRequestHandler.Handle - RAN name: %s - nodeb missing gnb configuration", ranName) - return nil, e2managererrors.NewInternalError() + 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) + err := h.rNibDataService.UpdateGnbCells(nodebInfo, updateGnbRequest.ServedNrCells) if err != nil { - h.logger.Errorf("#UpdateGnbRequestHandler.Handle - RAN name: %s - Failed updating GNB cells. Error: %s", ranName, err) - return nil, e2managererrors.NewRnibDbError() + h.logger.Errorf("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - Failed updating GNB cells. Error: %s", ranName, err) + return e2managererrors.NewRnibDbError() } - return models.NewUpdateGnbResponse(nodebInfo), nil + h.logger.Infof("#UpdateGnbRequestHandler.updateGnbCells - RAN name: %s - Successfully updated GNB cells", ranName) + return nil } -func (h *UpdateGnbRequestHandler) validateRequestBody(updateGnbRequest models.UpdateGnbRequest) (error) { +func (h *UpdateGnbRequestHandler) validateRequestBody(updateGnbRequest models.UpdateGnbRequest) error { if len(updateGnbRequest.ServedNrCells) == 0 { h.logger.Errorf(VALIDATION_FAILURE_MESSAGE+" and cannot be empty", "servedCells") @@ -129,23 +150,19 @@ func (h *UpdateGnbRequestHandler) validateRequestBody(updateGnbRequest models.Up func isServedNrCellInformationValid(servedNrCellInformation *entities.ServedNRCellInformation) error { if servedNrCellInformation.CellId == "" { - return errors.New("cellId"); + return errors.New("cellId") } if servedNrCellInformation.ChoiceNrMode == nil { - return errors.New("choiceNrMode"); + return errors.New("choiceNrMode") } if servedNrCellInformation.NrMode == entities.Nr_UNKNOWN { - return errors.New("nrMode"); - } - - if servedNrCellInformation.NrPci == 0 { - return errors.New("nrPci"); + return errors.New("nrMode") } if len(servedNrCellInformation.ServedPlmns) == 0 { - return errors.New("servedPlmns"); + return errors.New("servedPlmns") } return isServedNrCellInfoChoiceNrModeValid(servedNrCellInformation.ChoiceNrMode) @@ -184,10 +201,6 @@ func isNrNeighbourInformationValid(nrNeighbourInformation *entities.NrNeighbourI return errors.New("nrMode") } - if nrNeighbourInformation.NrPci == 0 { - return errors.New("nrPci") - } - return isNrNeighbourInfoChoiceNrModeValid(nrNeighbourInformation.ChoiceNrMode) }