}
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,
}
}
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)
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)
}
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 {