X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Frmrmsghandlers%2Fric_service_update_handler.go;h=fda411f7325bcf455e5cbef5fbb4f60db098521e;hb=28c0585ff0a4779b938d284a9abc64fbe381bee0;hp=2f871e755a4b21613e87cd1f4f48715fc1cc0fc0;hpb=05d983f73dd83441169a11704e494ab686fece0e;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go b/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go index 2f871e7..fda411f 100644 --- a/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go +++ b/E2Manager/handlers/rmrmsghandlers/ric_service_update_handler.go @@ -51,18 +51,20 @@ type functionDetails struct { } type RicServiceUpdateHandler struct { - logger *logger.Logger - rmrSender *rmrsender.RmrSender - rNibDataService services.RNibDataService - ranListManager managers.RanListManager + logger *logger.Logger + rmrSender *rmrsender.RmrSender + rNibDataService services.RNibDataService + ranListManager managers.RanListManager + RicServiceUpdateManager managers.IRicServiceUpdateManager } -func NewRicServiceUpdateHandler(logger *logger.Logger, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, ranListManager managers.RanListManager) *RicServiceUpdateHandler { +func NewRicServiceUpdateHandler(logger *logger.Logger, rmrSender *rmrsender.RmrSender, rNibDataService services.RNibDataService, ranListManager managers.RanListManager, RicServiceUpdateManager managers.IRicServiceUpdateManager) *RicServiceUpdateHandler { return &RicServiceUpdateHandler{ - logger: logger, - rmrSender: rmrSender, - rNibDataService: rNibDataService, - ranListManager: ranListManager, + logger: logger, + rmrSender: rmrSender, + rNibDataService: rNibDataService, + ranListManager: ranListManager, + RicServiceUpdateManager: RicServiceUpdateManager, } } @@ -87,9 +89,16 @@ func (h *RicServiceUpdateHandler) Handle(request *models.NotificationRequest) { return } h.logger.Infof("#RicServiceUpdateHandler.Handle - RIC_SERVICE_UPDATE has been parsed successfully %+v", ricServiceUpdate) + h.RicServiceUpdateManager.StoreExistingRanFunctions(ranName) + h.logger.Infof("#RicServiceUpdate.Handle - Getting the ranFunctions before we do the RIC ServiceUpdate handling") + + if len(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs) == 0 { + h.logger.Errorf("#RicServiceUpdateHandler.Handle - RAN name: %s - RICServiceUpdateIEs empty", ranName) + return + } ackFunctionIds := h.updateFunctions(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs, nodebInfo) - if len(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs) != 0 { + if len(ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs) > 1 { err = h.rNibDataService.UpdateNodebInfoAndPublish(nodebInfo) if err != nil { h.logger.Errorf("#RicServiceUpdateHandler.Handle - RAN name: %s - Failed at UpdateNodebInfoAndPublish. error: %s", nodebInfo.RanName, err) @@ -104,7 +113,7 @@ func (h *RicServiceUpdateHandler) Handle(request *models.NotificationRequest) { return } - updateAck := models.NewServiceUpdateAck(ackFunctionIds) + updateAck := models.NewServiceUpdateAck(ackFunctionIds, ricServiceUpdate.E2APPDU.InitiatingMessage.Value.RICServiceUpdate.ProtocolIEs.RICServiceUpdateIEs[0].Value.TransactionID) err = h.sendUpdateAck(updateAck, nodebInfo, request) if err != nil { h.logger.Errorf("#RicServiceUpdate.Handle - failed to send RIC_SERVICE_UPDATE_ACK message to RMR: %s", err) @@ -112,6 +121,8 @@ func (h *RicServiceUpdateHandler) Handle(request *models.NotificationRequest) { } h.logger.Infof("#RicServiceUpdate.Handle - Completed successfully") + models.UpdateProcedureType(ranName, models.RicServiceUpdateCompleted) + h.logger.Debugf("#RicServiceUpdateHandler.Handle - updating the enum value to RicServiceUpdateCompleted completed") } func (h *RicServiceUpdateHandler) sendUpdateAck(updateAck models.RicServiceUpdateAckE2APPDU, nodebInfo *entities.NodebInfo, request *models.NotificationRequest) error {