)
type E2SetupRequestNotificationHandler struct {
- logger *logger.Logger
- config *configuration.Configuration
- e2tInstancesManager managers.IE2TInstancesManager
- rmrSender *rmrsender.RmrSender
- rNibDataService services.RNibDataService
- e2tAssociationManager *managers.E2TAssociationManager
+ logger *logger.Logger
+ config *configuration.Configuration
+ e2tInstancesManager managers.IE2TInstancesManager
+ rmrSender *rmrsender.RmrSender
+ rNibDataService services.RNibDataService
+ e2tAssociationManager *managers.E2TAssociationManager
+ ranConnectStatusChangeManager managers.IRanConnectStatusChangeManager
}
-func NewE2SetupRequestNotificationHandler(logger *logger.Logger, config *configuration.Configuration, e2tInstancesManager managers.IE2TInstancesManager, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, e2tAssociationManager *managers.E2TAssociationManager) *E2SetupRequestNotificationHandler {
+func NewE2SetupRequestNotificationHandler(logger *logger.Logger, config *configuration.Configuration, e2tInstancesManager managers.IE2TInstancesManager, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, e2tAssociationManager *managers.E2TAssociationManager, ranConnectStatusChangeManager managers.IRanConnectStatusChangeManager) *E2SetupRequestNotificationHandler {
return &E2SetupRequestNotificationHandler{
- logger: logger,
- config: config,
- e2tInstancesManager: e2tInstancesManager,
- rmrSender: rmrSender,
- rNibDataService: rNibDataService,
- e2tAssociationManager: e2tAssociationManager,
+ logger: logger,
+ config: config,
+ e2tInstancesManager: e2tInstancesManager,
+ rmrSender: rmrSender,
+ rNibDataService: rNibDataService,
+ e2tAssociationManager: e2tAssociationManager,
+ ranConnectStatusChangeManager: ranConnectStatusChangeManager,
}
}
generalConfiguration, err := h.rNibDataService.GetGeneralConfiguration()
if err != nil {
- h.logger.Errorf("#E2SetupRequestNotificationHandler.Handle - Failed retrieving e2m general configuration. error: %s", err)
+ h.logger.Errorf("#E2SetupRequestNotificationHandler.Handle - Failed retrieving e2m general configuration - quitting e2 setup flow. error: %s", err)
return
}
+ h.logger.Infof("#E2SetupRequestNotificationHandler.Handle - got general configuration from rnib - enableRic: %t", generalConfiguration.EnableRic)
+
if !generalConfiguration.EnableRic {
cause := models.Cause{Misc: &models.CauseMisc{OmIntervention: &struct{}{}}}
h.handleUnsuccessfulResponse(ranName, request, cause)
return nodebInfo, nil
}
-func (h *E2SetupRequestNotificationHandler) setGnbFunctions(nodebInfo *entities.NodebInfo, setupRequest *models.E2SetupRequestMessage) error {
+func (h *E2SetupRequestNotificationHandler) setGnbFunctions(nodebInfo *entities.NodebInfo, setupRequest *models.E2SetupRequestMessage) {
ranFunctions := setupRequest.ExtractRanFunctionsList()
if ranFunctions != nil {
nodebInfo.GetGnb().RanFunctions = ranFunctions
}
-
- return nil
}
func (h *E2SetupRequestNotificationHandler) handleExistingRan(ranName string, nodebInfo *entities.NodebInfo, setupRequest *models.E2SetupRequestMessage) error {
return errors.New("nodeB entity in incorrect state")
}
- err := h.setGnbFunctions(nodebInfo, setupRequest)
- return err
+ h.setGnbFunctions(nodebInfo, setupRequest)
+
+ return h.rNibDataService.UpdateNodebInfo(nodebInfo)
}
func (h *E2SetupRequestNotificationHandler) handleUnsuccessfulResponse(ranName string, req *models.NotificationRequest, cause models.Cause) {
return []byte(normalized)
}
-func (h E2SetupRequestNotificationHandler) buildNodebInfo(ranName string, e2tAddress string, request *models.E2SetupRequestMessage) (*entities.NodebInfo, error) {
+func (h *E2SetupRequestNotificationHandler) buildNodebInfo(ranName string, e2tAddress string, request *models.E2SetupRequestMessage) (*entities.NodebInfo, error) {
var err error
nodebInfo := &entities.NodebInfo{
AssociatedE2TInstanceAddress: e2tAddress,
- ConnectionStatus: entities.ConnectionStatus_CONNECTED,
RanName: ranName,
NodeType: entities.Node_GNB,
Configuration: &entities.NodebInfo_Gnb{Gnb: &entities.Gnb{}},
GlobalNbId: h.buildGlobalNbId(request),
}
- err = h.setGnbFunctions(nodebInfo, request)
+ h.setGnbFunctions(nodebInfo, request)
return nodebInfo, err
}
-func (h E2SetupRequestNotificationHandler) buildGlobalNbId(setupRequest *models.E2SetupRequestMessage) *entities.GlobalNbId {
+func (h *E2SetupRequestNotificationHandler) buildGlobalNbId(setupRequest *models.E2SetupRequestMessage) *entities.GlobalNbId {
return &entities.GlobalNbId{
PlmnId: setupRequest.GetPlmnId(),
NbId: setupRequest.GetNbId(),
}
}
-func (h E2SetupRequestNotificationHandler) buildNbIdentity(ranName string, setupRequest *models.E2SetupRequestMessage) *entities.NbIdentity {
+func (h *E2SetupRequestNotificationHandler) buildNbIdentity(ranName string, setupRequest *models.E2SetupRequestMessage) *entities.NbIdentity {
return &entities.NbIdentity{
InventoryName: ranName,
GlobalNbId: h.buildGlobalNbId(setupRequest),