X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fadd_enb_request_handler.go;h=6f7fcd6f233f2f54d4febf4de978cb3277115355;hb=refs%2Fchanges%2F34%2F4434%2F3;hp=c8615a4d98668698c7bee1593fd56e64dcee1f02;hpb=14eb5132c3dca8cdad98e7e5420701b04f452046;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go b/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go index c8615a4..6f7fcd6 100644 --- a/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go +++ b/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go @@ -22,6 +22,7 @@ package httpmsghandlers import ( "e2mgr/e2managererrors" "e2mgr/logger" + "e2mgr/managers" "e2mgr/models" "e2mgr/services" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common" @@ -31,13 +32,17 @@ import ( type AddEnbRequestHandler struct { logger *logger.Logger + nodebValidator *managers.NodebValidator rNibDataService services.RNibDataService + ranListManager managers.RanListManager } -func NewAddEnbRequestHandler(logger *logger.Logger, rNibDataService services.RNibDataService) *AddEnbRequestHandler { +func NewAddEnbRequestHandler(logger *logger.Logger, rNibDataService services.RNibDataService, nodebValidator *managers.NodebValidator, ranListManager managers.RanListManager) *AddEnbRequestHandler { return &AddEnbRequestHandler{ logger: logger, + nodebValidator: nodebValidator, rNibDataService: rNibDataService, + ranListManager: ranListManager, } } @@ -67,17 +72,22 @@ func (h *AddEnbRequestHandler) Handle(request models.Request) (models.IResponse, return nil, e2managererrors.NewRnibDbError() } - nbIdentity := h.createNbIdentity(addEnbRequest) nodebInfo := h.createNodebInfo(addEnbRequest) + err = h.rNibDataService.AddEnb(nodebInfo) + + if err != nil { + h.logger.Errorf("#AddEnbRequestHandler.Handle - RAN name: %s - failed to add eNB entity in RNIB. Error: %s", addEnbRequest.RanName, err) + return nil, e2managererrors.NewRnibDbError() + } - err = h.rNibDataService.SaveNodeb(nbIdentity, nodebInfo) + nbIdentity := h.createNbIdentity(addEnbRequest) + err = h.ranListManager.AddNbIdentity(entities.Node_ENB, nbIdentity) if err != nil { - h.logger.Errorf("#AddEnbRequestHandler.Handle - RAN name: %s - failed to save nodeb entity in RNIB. Error: %s", addEnbRequest.RanName, err) return nil, e2managererrors.NewRnibDbError() } - return models.NewAddEnbResponse(nodebInfo), nil + return models.NewNodebResponse(nodebInfo), nil } func (h *AddEnbRequestHandler) createNodebInfo(addEnbRequest *models.AddEnbRequest) *entities.NodebInfo { @@ -87,6 +97,7 @@ func (h *AddEnbRequestHandler) createNodebInfo(addEnbRequest *models.AddEnbReque Port: addEnbRequest.Port, GlobalNbId: addEnbRequest.GlobalNbId, Configuration: &entities.NodebInfo_Enb{Enb: addEnbRequest.Enb}, + NodeType: entities.Node_ENB, ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, } @@ -94,12 +105,11 @@ func (h *AddEnbRequestHandler) createNodebInfo(addEnbRequest *models.AddEnbReque } func (h *AddEnbRequestHandler) createNbIdentity(addEnbRequest *models.AddEnbRequest) *entities.NbIdentity { - nbIdentity := entities.NbIdentity{ - GlobalNbId: addEnbRequest.GlobalNbId, - InventoryName: addEnbRequest.RanName, + return &entities.NbIdentity{ + GlobalNbId: addEnbRequest.GlobalNbId, + InventoryName: addEnbRequest.RanName, + ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, } - - return &nbIdentity } func (h *AddEnbRequestHandler) validateRequestBody(addEnbRequest *models.AddEnbRequest) error { @@ -120,7 +130,7 @@ func (h *AddEnbRequestHandler) validateRequestBody(addEnbRequest *models.AddEnbR return errors.New("enb") } - if err := isEnbValid(addEnbRequest.Enb); err != nil { + if err := h.nodebValidator.IsEnbValid(addEnbRequest.Enb); err != nil { return err } @@ -138,68 +148,3 @@ func isGlobalNbIdValid(globalNbId *entities.GlobalNbId) error { return nil } - -func isEnbValid(enb *entities.Enb) error { - if enb.EnbType == entities.EnbType_UNKNOWN_ENB_TYPE { - return errors.New("enb.enbType") - } - - if enb.ServedCells == nil || len(enb.ServedCells) == 0 { - return errors.New("enb.servedCells") - } - - for _, servedCell := range enb.ServedCells { - err := isServedCellValid(servedCell) - - if err != nil { - return err - } - } - - return nil -} - -func isServedCellValid(servedCell *entities.ServedCellInfo) error { - - if servedCell.CellId == "" { - return errors.New("servedCell.cellId") - } - - if servedCell.EutraMode == entities.Eutra_UNKNOWN { - return errors.New("servedCell.eutraMode") - } - - if servedCell.Tac == "" { - return errors.New("servedCell.tac") - } - - if servedCell.BroadcastPlmns == nil || len(servedCell.BroadcastPlmns) == 0 { - return errors.New("servedCell.broadcastPlmns") - } - - if servedCell.ChoiceEutraMode == nil { - return errors.New("servedCell.choiceEutraMode") - } - - return isChoiceEutraModeValid(servedCell.ChoiceEutraMode) -} - -func isChoiceEutraModeValid(choiceEutraMode *entities.ChoiceEUTRAMode) error { - if choiceEutraMode.Fdd != nil { - return isFddInfoValid(choiceEutraMode.Fdd) - } - - if choiceEutraMode.Tdd != nil { - return isTddInfoValid(choiceEutraMode.Tdd) - } - - return errors.New("servedCell.fdd / servedCell.tdd") -} - -func isTddInfoValid(tdd *entities.TddInfo) error { - return nil -} - -func isFddInfoValid(fdd *entities.FddInfo) error { - return nil -}