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,
}
}
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 {
}
nodebInfo := h.createNodebInfo(addEnbRequest)
- err = h.rNibDataService.SaveNodeb(nodebInfo)
+ err = h.rNibDataService.AddEnb(nodebInfo)
if err != nil {
- h.logger.Errorf("#AddEnbRequestHandler.Handle - RAN name: %s - failed to save nodeb entity in RNIB. Error: %s", addEnbRequest.RanName, err)
+ h.logger.Errorf("#AddEnbRequestHandler.Handle - RAN name: %s - failed to add eNB entity in RNIB. Error: %s", addEnbRequest.RanName, err)
return nil, e2managererrors.NewRnibDbError()
}
- _ = h.createNbIdentity(addEnbRequest) // TODO: add call to ranListManager
+ nbIdentity := h.createNbIdentity(addEnbRequest)
+ err = h.ranListManager.AddNbIdentity(entities.Node_ENB, nbIdentity)
+
+ if err != nil {
+ return nil, e2managererrors.NewRnibDbError()
+ }
return models.NewNodebResponse(nodebInfo), nil
}
Configuration: &entities.NodebInfo_Enb{Enb: addEnbRequest.Enb},
NodeType: entities.Node_ENB,
ConnectionStatus: entities.ConnectionStatus_DISCONNECTED,
+ SetupFromNetwork: false,
}
return &nodebInfo