X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmanagers%2Fupdate_enb_manager.go;h=79a8f49b4e98e65e7eccf68b1b52c800c817e588;hb=7000880c4031e607a2fe36046fd097f486476a84;hp=6c9ae1427e56c27dbd0474deefc77fa3dd7de455;hpb=5830d4db63151dd466533673fd76d842302f0034;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/managers/update_enb_manager.go b/E2Manager/managers/update_enb_manager.go old mode 100644 new mode 100755 index 6c9ae14..79a8f49 --- a/E2Manager/managers/update_enb_manager.go +++ b/E2Manager/managers/update_enb_manager.go @@ -25,6 +25,7 @@ import ( "e2mgr/models" "e2mgr/services" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" + "github.com/pkg/errors" ) type UpdateEnbManager struct { @@ -41,12 +42,14 @@ func NewUpdateEnbManager(logger *logger.Logger, rnibDataService services.RNibDat } } -func (h *UpdateEnbManager) Validate(request *models.UpdateNodebRequest) error { +func (h *UpdateEnbManager) Validate(request models.Request) error { - h.logger.Infof("#UpdateEnbManager.Validate - Validate incoming request, ran name: %s", request.RanName) + updateEnbRequest := request.(*models.UpdateEnbRequest) - if err := h.nodebValidator.IsEnbValid(request.Enb); err != nil { - //TODO add log + h.logger.Infof("#UpdateEnbManager.Validate - Validate incoming request, ran name: %s", updateEnbRequest.RanName) + + if err := h.validateRequestBody(updateEnbRequest); err != nil { + h.logger.Errorf("#UpdateEnbManager.Validate - validation failure: %s is a mandatory field and cannot be empty", err) return err } @@ -55,7 +58,19 @@ func (h *UpdateEnbManager) Validate(request *models.UpdateNodebRequest) error { func (h *UpdateEnbManager) RemoveNodebCells(nodeb *entities.NodebInfo) error { - err := h.rnibDataService.RemoveServedCells(nodeb.GetRanName(), nodeb.GetEnb().GetServedCells()) + if nodeb.NodeType != entities.Node_ENB { + h.logger.Errorf("#UpdateEnbManager.RemoveNodebCells - RAN name: %s - RAN is not eNB.", nodeb.RanName) + return e2managererrors.NewRequestValidationError() + } + + servedCells := nodeb.GetEnb().GetServedCells() + + if len(servedCells) == 0 { + h.logger.Infof("#UpdateGnbManager.RemoveNodebCells - RAN name: %s - eNB cells are nil or empty - no cells to remove", nodeb.GetRanName()) + return nil + } + + err := h.rnibDataService.RemoveServedCells(nodeb.GetRanName(), servedCells) if err != nil { h.logger.Errorf("#UpdateEnbManager.RemoveNodebCells - RAN name: %s - Failed removing eNB served cells", nodeb.GetRanName()) return e2managererrors.NewRnibDbError() @@ -65,17 +80,9 @@ func (h *UpdateEnbManager) RemoveNodebCells(nodeb *entities.NodebInfo) error { return nil } -func (h *UpdateEnbManager) SetNodeb(nodeb *entities.NodebInfo, request *models.UpdateNodebRequest) error { - - ranName := nodeb.GetRanName() - - if nodeb.NodeType != entities.Node_ENB { - h.logger.Errorf("#UpdateEnbManager.SetNodeb - RAN name: %s - nodeb missing eNB configuration", ranName) - return e2managererrors.NewRequestValidationError() - } - nodeb.Configuration = &entities.NodebInfo_Enb{Enb: request.Enb} - - return nil +func (h *UpdateEnbManager) SetNodeb(nodeb *entities.NodebInfo, request models.Request) { + updateEnbRequest := request.(*models.UpdateEnbRequest) + nodeb.Configuration = &entities.NodebInfo_Enb{Enb: updateEnbRequest.Enb} } func (h *UpdateEnbManager) UpdateNodeb(nodeb *entities.NodebInfo) error { @@ -89,3 +96,16 @@ func (h *UpdateEnbManager) UpdateNodeb(nodeb *entities.NodebInfo) error { return nil } + +func (h *UpdateEnbManager) validateRequestBody(request *models.UpdateEnbRequest) error { + + if request.Enb == nil { + return errors.New("enb") + } + + if err := h.nodebValidator.IsEnbValid(request.Enb); err != nil { + return err + } + + return nil +}