X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fadd_enb_request_handler.go;h=bfcced568511f6e056430cdc73b406e5034253a4;hb=HEAD;hp=e620d3c190fc58d11eed7558b54e7d8db4d5700e;hpb=e0106ffb1e1e5b133752b073372d663c49101370;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 e620d3c..bfcced5 100644 --- a/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go +++ b/E2Manager/handlers/httpmsghandlers/add_enb_request_handler.go @@ -34,13 +34,15 @@ type AddEnbRequestHandler struct { logger *logger.Logger nodebValidator *managers.NodebValidator rNibDataService services.RNibDataService + ranListManager managers.RanListManager } -func NewAddEnbRequestHandler(logger *logger.Logger, rNibDataService services.RNibDataService, nodebValidator *managers.NodebValidator) *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, } } @@ -57,6 +59,12 @@ func (h *AddEnbRequestHandler) Handle(request models.Request) (models.IResponse, return nil, e2managererrors.NewRequestValidationError() } + enbType := addEnbRequest.Enb.GetEnbType() + if h.nodebValidator.IsNgEnbType(enbType){ + h.logger.Errorf("#AddEnbRequestHandler.Handle - validation failure: enb type is not supported. enb type: %s", enbType) + return nil, e2managererrors.NewRequestValidationError() + } + _, err = h.rNibDataService.GetNodeb(addEnbRequest.RanName) if err == nil { @@ -70,17 +78,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 { @@ -92,18 +105,18 @@ func (h *AddEnbRequestHandler) createNodebInfo(addEnbRequest *models.AddEnbReque Configuration: &entities.NodebInfo_Enb{Enb: addEnbRequest.Enb}, NodeType: entities.Node_ENB, ConnectionStatus: entities.ConnectionStatus_DISCONNECTED, + SetupFromNetwork: false, } return &nodebInfo } 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 {