X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=inline;f=E2Manager%2Fhandlers%2Fhttpmsghandlers%2Fsetup_request_handler.go;h=dae75a9015a59c2632dcde7c5b5877df45c9bdf5;hb=d6d623cc2eda63be912b4e322c25e492abe86a99;hp=92ec94478500f57d9841a2fcc4ae7482c3923091;hpb=efcb4528362460aa2249d319c9752b63bb720fe2;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/httpmsghandlers/setup_request_handler.go b/E2Manager/handlers/httpmsghandlers/setup_request_handler.go index 92ec944..dae75a9 100644 --- a/E2Manager/handlers/httpmsghandlers/setup_request_handler.go +++ b/E2Manager/handlers/httpmsghandlers/setup_request_handler.go @@ -37,21 +37,23 @@ const ( ) 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, } } @@ -92,16 +94,14 @@ func (h *SetupRequestHandler) Handle(request models.Request) (models.IResponse, 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, } nbIdentity := &entities.NbIdentity{ @@ -117,12 +117,11 @@ func (h *SetupRequestHandler) connectExistingRanWithoutAssociatedE2TAddress(node if err != nil { h.logger.Errorf("#SetupRequestHandler.connectExistingRanWithoutAssociatedE2TAddress - RAN name: %s - failed selecting E2T instance", nodebInfo.RanName) - if nodebInfo.ConnectionStatus == entities.ConnectionStatus_DISCONNECTED && nodebInfo.ConnectionAttempts == 0 { + if nodebInfo.ConnectionStatus == entities.ConnectionStatus_DISCONNECTED{ return err } nodebInfo.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED - nodebInfo.ConnectionAttempts = 0 updateError := h.rNibDataService.UpdateNodebInfo(nodebInfo) if updateError != nil { @@ -132,23 +131,13 @@ func (h *SetupRequestHandler) connectExistingRanWithoutAssociatedE2TAddress(node 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) @@ -160,7 +149,6 @@ func (h *SetupRequestHandler) connectExistingRanWithAssociatedE2TAddress(nodebIn if nodebInfo.ConnectionStatus == entities.ConnectionStatus_CONNECTED { status = nodebInfo.ConnectionStatus } - nodebInfo.ConnectionAttempts = 0 err := h.rNibDataService.UpdateNodebInfo(nodebInfo) if err != nil { @@ -170,7 +158,6 @@ func (h *SetupRequestHandler) connectExistingRanWithAssociatedE2TAddress(nodebIn h.logger.Infof("#SetupRequestHandler.connectExistingRanWithAssociatedE2TAddress - RAN name: %s - successfully reset connection attempts of RAN", nodebInfo.RanName) - result := h.ranSetupManager.ExecuteSetup(nodebInfo, status) return result } @@ -184,14 +171,7 @@ func (h *SetupRequestHandler) connectNewRan(request *models.SetupRequest, protoc 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) @@ -202,6 +182,13 @@ func (h *SetupRequestHandler) connectNewRan(request *models.SetupRequest, protoc 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