- if nodebInfo.ConnectionStatus == entities.ConnectionStatus_SHUTTING_DOWN {
- handler.logger.Errorf("#SetupRequestHandler.connectExistingRan - RAN: %s in wrong state (%s)", nodebInfo.RanName, entities.ConnectionStatus_name[int32(nodebInfo.ConnectionStatus)])
- return e2managererrors.NewWrongStateError(handler.getActivityName(handler.protocol), entities.ConnectionStatus_name[int32(nodebInfo.ConnectionStatus)])
+ nodebInfo := &entities.NodebInfo{
+ Ip: requestDetails.RanIp,
+ Port: uint32(requestDetails.RanPort),
+ ConnectionStatus: entities.ConnectionStatus_CONNECTING,
+ E2ApplicationProtocol: protocol,
+ RanName: requestDetails.RanName,
+ }
+
+ nbIdentity := &entities.NbIdentity{
+ InventoryName: requestDetails.RanName,
+ }
+
+ return nodebInfo, nbIdentity
+}
+
+func (h *SetupRequestHandler) connectExistingRanWithoutAssociatedE2TAddress(nodebInfo *entities.NodebInfo) error {
+ e2tAddress, err := h.e2tInstancesManager.SelectE2TInstance()
+
+ if err != nil {
+ h.logger.Errorf("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - failed selecting E2T instance", nodebInfo.RanName)
+
+ if nodebInfo.ConnectionStatus == entities.ConnectionStatus_DISCONNECTED{
+ return err
+ }
+
+ nodebInfo.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED
+ updateError := h.rNibDataService.UpdateNodebInfo(nodebInfo)
+
+ if updateError != nil {
+ h.logger.Errorf("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - failed updating nodeb. error: %s", nodebInfo.RanName, updateError)
+ }
+
+ return err
+ }
+
+ 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