)
type SetupRequestHandler struct {
- rNibDataService services.RNibDataService
- logger *logger.Logger
- ranSetupManager managers.IRanSetupManager
- protocol entities.E2ApplicationProtocol
- e2tInstancesManager managers.IE2TInstancesManager
+ rNibDataService services.RNibDataService
+ logger *logger.Logger
+ ranSetupManager managers.IRanSetupManager
+ protocol entities.E2ApplicationProtocol
+ e2tAssociationManager *managers.E2TAssociationManager
+ e2tInstancesManager managers.IE2TInstancesManager
}
func NewSetupRequestHandler(logger *logger.Logger, rNibDataService services.RNibDataService,
- ranSetupManager managers.IRanSetupManager, protocol entities.E2ApplicationProtocol, e2tInstancesManager managers.IE2TInstancesManager) *SetupRequestHandler {
+ ranSetupManager managers.IRanSetupManager, protocol entities.E2ApplicationProtocol, e2tInstancesManager managers.IE2TInstancesManager, e2tAssociationManager *managers.E2TAssociationManager) *SetupRequestHandler {
return &SetupRequestHandler{
- logger: logger,
- rNibDataService: rNibDataService,
- ranSetupManager: ranSetupManager,
- protocol: protocol,
- e2tInstancesManager: e2tInstancesManager,
+ logger: logger,
+ rNibDataService: rNibDataService,
+ ranSetupManager: ranSetupManager,
+ protocol: protocol,
+ e2tAssociationManager: e2tAssociationManager,
+ e2tInstancesManager: e2tInstancesManager,
}
}
return nil, result
}
-func createInitialNodeInfo(requestDetails *models.SetupRequest, protocol entities.E2ApplicationProtocol, e2tAddress string) (*entities.NodebInfo, *entities.NbIdentity) {
+func createInitialNodeInfo(requestDetails *models.SetupRequest, protocol entities.E2ApplicationProtocol) (*entities.NodebInfo, *entities.NbIdentity) {
nodebInfo := &entities.NodebInfo{
- Ip: requestDetails.RanIp,
- Port: uint32(requestDetails.RanPort),
- ConnectionStatus: entities.ConnectionStatus_CONNECTING,
- E2ApplicationProtocol: protocol,
- RanName: requestDetails.RanName,
- ConnectionAttempts: 0,
- AssociatedE2TInstanceAddress: e2tAddress,
+ Ip: requestDetails.RanIp,
+ Port: uint32(requestDetails.RanPort),
+ ConnectionStatus: entities.ConnectionStatus_CONNECTING,
+ E2ApplicationProtocol: protocol,
+ RanName: requestDetails.RanName,
+ ConnectionAttempts: 0,
}
nbIdentity := &entities.NbIdentity{
return err
}
- err = h.e2tInstancesManager.AssociateRan(nodebInfo.RanName, e2tAddress)
+ err = h.e2tAssociationManager.AssociateRan(e2tAddress, nodebInfo)
if err != nil {
h.logger.Errorf("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - failed associating ran to e2t address %s. error: %s", nodebInfo.RanName, e2tAddress, err)
return err
}
- nodebInfo.AssociatedE2TInstanceAddress = e2tAddress
- nodebInfo.ConnectionAttempts = 0
-
- err = h.rNibDataService.UpdateNodebInfo(nodebInfo)
-
- if err != nil {
- h.logger.Errorf("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - failed updating nodeb in rNib. error: %s", nodebInfo.RanName, err)
- return e2managererrors.NewRnibDbError()
- }
-
h.logger.Infof("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - successfully updated nodeb in rNib", nodebInfo.RanName)
result := h.ranSetupManager.ExecuteSetup(nodebInfo, entities.ConnectionStatus_CONNECTING)
h.logger.Infof("#SetupRequestHandler.connectExistingRanWithAssociatedE2TAddress - RAN name: %s - successfully reset connection attempts of RAN", nodebInfo.RanName)
-
result := h.ranSetupManager.ExecuteSetup(nodebInfo, status)
return result
}
return err
}
- err = h.e2tInstancesManager.AssociateRan(request.RanName, e2tAddress)
-
- if err != nil {
- h.logger.Errorf("#SetupRequestHandler.connectNewRan - RAN name: %s - failed associating ran to e2t address %s. error: %s", request.RanName, e2tAddress, err)
- return err
- }
-
- nodebInfo, nodebIdentity := createInitialNodeInfo(request, protocol, e2tAddress)
+ nodebInfo, nodebIdentity := createInitialNodeInfo(request, protocol)
err = h.rNibDataService.SaveNodeb(nodebIdentity, nodebInfo)
h.logger.Infof("#SetupRequestHandler.connectNewRan - RAN name: %s - initial nodeb entity was saved to rNib", request.RanName)
+ err = h.e2tAssociationManager.AssociateRan(e2tAddress, nodebInfo)
+
+ if err != nil {
+ h.logger.Errorf("#SetupRequestHandler.connectNewRan - RAN name: %s - failed associating ran to e2t address %s. error: %s", request.RanName, e2tAddress, err)
+ return err
+ }
+
result := h.ranSetupManager.ExecuteSetup(nodebInfo, entities.ConnectionStatus_CONNECTING)
return result