X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fadd_enb_request_handler.go;h=0b86627a6aaa2c76b1553fe543c8c7d421c472a1;hb=dedb9a8885940e77238a6a47a494c49e411685ce;hp=871039651ea7e8fee0cc965d82d598e1417d6903;hpb=b2f2743968c5cda9a708bf5a6f32678caabd6976;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 8710396..0b86627 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, } } @@ -53,7 +55,7 @@ func (h *AddEnbRequestHandler) Handle(request models.Request) (models.IResponse, err := h.validateRequestBody(addEnbRequest) if err != nil { - h.logger.Errorf("#AddEnbRequestHandler.Handle - validation failure: %s is a mandatory field and cannot be empty", err) + h.logger.Errorf("#AddEnbRequestHandler.Handle - validation failure: %s is a mandatory field and cannot be empty or includes invalid value", err) return nil, e2managererrors.NewRequestValidationError() } @@ -70,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 { @@ -90,19 +97,20 @@ 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, + 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 { @@ -127,6 +135,10 @@ func (h *AddEnbRequestHandler) validateRequestBody(addEnbRequest *models.AddEnbR return err } + if h.nodebValidator.IsNgEnbType(addEnbRequest.Enb.GetEnbType()){ + return errors.New("enb.enbType") + } + return nil }