X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Frmrmsghandlers%2Fe2_reset_request_handler.go;h=eb20f13ddf0255e19b5d89ba2eef8bb13c5e3a5a;hb=5734b9170a6ea903130cf1bc2a2d81c27356e310;hp=5fb36c8fc1327c454f2fd31fb512cb304d983429;hpb=d39280d4e5f3b26c12be2f4ab3d829771c55fa7d;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler.go b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler.go index 5fb36c8..eb20f13 100644 --- a/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler.go +++ b/E2Manager/handlers/rmrmsghandlers/e2_reset_request_handler.go @@ -21,6 +21,7 @@ package rmrmsghandlers import ( "e2mgr/configuration" "e2mgr/logger" + "e2mgr/managers" "e2mgr/models" "e2mgr/rmrCgo" "e2mgr/services" @@ -39,18 +40,22 @@ var ( ) type E2ResetRequestNotificationHandler struct { - logger *logger.Logger - rnibDataService services.RNibDataService - config *configuration.Configuration - rmrSender *rmrsender.RmrSender + logger *logger.Logger + rnibDataService services.RNibDataService + config *configuration.Configuration + rmrSender *rmrsender.RmrSender + ranResetManager *managers.RanResetManager + changeStatusToConnectedRanManager *managers.ChangeStatusToConnectedRanManager } -func NewE2ResetRequestNotificationHandler(logger *logger.Logger, rnibDataService services.RNibDataService, config *configuration.Configuration, rmrSender *rmrsender.RmrSender) *E2ResetRequestNotificationHandler { +func NewE2ResetRequestNotificationHandler(logger *logger.Logger, rnibDataService services.RNibDataService, config *configuration.Configuration, rmrSender *rmrsender.RmrSender, ranResetManager *managers.RanResetManager, changeStatusToConnectedRanManager *managers.ChangeStatusToConnectedRanManager) *E2ResetRequestNotificationHandler { return &E2ResetRequestNotificationHandler{ - logger: logger, - rnibDataService: rnibDataService, - config: config, - rmrSender: rmrSender, + logger: logger, + rnibDataService: rnibDataService, + config: config, + rmrSender: rmrSender, + ranResetManager: ranResetManager, + changeStatusToConnectedRanManager: changeStatusToConnectedRanManager, } } @@ -71,7 +76,21 @@ func (e *E2ResetRequestNotificationHandler) Handle(request *models.NotificationR nodebInfo.ConnectionStatus = entities.ConnectionStatus_UNDER_RESET - err = e.rnibDataService.UpdateNodebInfoAndPublish(nodebInfo) + ranName := request.RanName + isResetDone, err := e.ranResetManager.ResetRan(ranName) + if err != nil { + e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to update and notify connection status of nodeB entity. RanName: %s. Error: %s", request.RanName, err.Error()) + } else { + if isResetDone { + nodebInfoupdated, err1 := e.getNodebInfo(request.RanName) + if err1 != nil { + e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to get updated nodeB entity. RanName: %s. Error: %s", request.RanName, err1.Error()) + } + e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Reset Done Successfully ran: %s , Connection status updated : %s", ranName, nodebInfoupdated.ConnectionStatus) + } else { + e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Reset Failed") + } + } if err != nil { e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to update connection status of nodeB entity. RanName: %s. Error: %s", request.RanName, err.Error()) @@ -83,7 +102,6 @@ func (e *E2ResetRequestNotificationHandler) Handle(request *models.NotificationR e.waitfortimertimeout(request) - ranName := request.RanName resetRequest, err := e.parseE2ResetMessage(request.Payload) if err != nil { e.logger.Errorf(err.Error()) @@ -92,12 +110,19 @@ func (e *E2ResetRequestNotificationHandler) Handle(request *models.NotificationR e.logger.Infof("#E2ResetRequestNotificationHandler.Handle - RIC_RESET_REQUEST has been parsed successfully %+v", resetRequest) e.handleSuccessfulResponse(ranName, request, resetRequest) - nodebInfo.ConnectionStatus = entities.ConnectionStatus_CONNECTED - - err = e.rnibDataService.UpdateNodebInfoAndPublish(nodebInfo) - + isConnectedStatus, err := e.changeStatusToConnectedRanManager.ChangeStatusToConnectedRan(ranName) if err != nil { - e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to update connection status of nodeB entity. RanName: %s. Error: %s", request.RanName, err.Error()) + e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to update and notify connection status of nodeB entity. RanName: %s. Error: %s", request.RanName, err.Error()) + } else { + if isConnectedStatus { + nodebInfoupdated, err1 := e.getNodebInfo(request.RanName) + if err1 != nil { + e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - failed to get updated nodeB entity. RanName: %s. Error: %s", request.RanName, err1.Error()) + } + e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Connection status Set Successfully ran: %s , Connection status updated : %s", ranName, nodebInfoupdated.ConnectionStatus) + } else { + e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Connection status Setting Failed") + } } e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - nodeB entity connected state. RanName %s, ConnectionStatus %s", nodebInfo.RanName, nodebInfo.ConnectionStatus) @@ -128,13 +153,13 @@ func (e *E2ResetRequestNotificationHandler) waitfortimertimeout(request *models. func (e *E2ResetRequestNotificationHandler) parseE2ResetMessage(payload []byte) (*models.E2ResetRequestMessage, error) { e2resetMessage := models.E2ResetRequestMessage{} - err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2resetMessage.E2APPDU)) + err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2resetMessage.E2ApPDU)) if err != nil { e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - error in parsing request message: %+v", err) return nil, err } - e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Unmarshalling is successful %v", e2resetMessage.E2APPDU.InitiatingMessage.ProcedureCode) + e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Unmarshalling is successful %v", e2resetMessage.E2ApPDU.InitiatingMessage.ProcedureCode) return &e2resetMessage, nil }