[RIC-571] Setup request of new eNB
[ric-plt/e2mgr.git] / E2Manager / handlers / httpmsghandlers / add_enb_request_handler.go
index 8710396..6f7fcd6 100644 (file)
@@ -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,
        }
 }
 
@@ -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)
 
-       err = h.rNibDataService.SaveNodeb(nbIdentity, 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()
+       }
+
+       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,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,
        }
 
@@ -97,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 {