RIC-194 Setup from RAN: On Routing Manager Failure, return Setup Failure
[ric-plt/e2mgr.git] / E2Manager / services / rmrsender / rmr_sender.go
index 1d832d9..5df261d 100644 (file)
@@ -28,21 +28,34 @@ import (
 
 type RmrSender struct {
        logger    *logger.Logger
-       messenger *rmrCgo.RmrMessenger
+       messenger rmrCgo.RmrMessenger
 }
 
-func NewRmrSender(logger *logger.Logger, messenger *rmrCgo.RmrMessenger) *RmrSender {
+func NewRmrSender(logger *logger.Logger, messenger rmrCgo.RmrMessenger) *RmrSender {
        return &RmrSender{
                logger:    logger,
                messenger: messenger,
        }
 }
 
+func (r *RmrSender) WhSend(rmrMessage *models.RmrMessage) error {
+       msg := rmrCgo.NewMBuf(rmrMessage.MsgType, len(rmrMessage.Payload), rmrMessage.RanName, &rmrMessage.Payload, &rmrMessage.XAction, rmrMessage.GetMsgSrc())
+
+       _, err := r.messenger.WhSendMsg(msg, true)
+
+       if err != nil {
+               r.logger.Errorf("#RmrSender.WhSend - RAN name: %s , Message type: %d - Failed sending message. Error: %v", rmrMessage.RanName, rmrMessage.MsgType, err)
+               return err
+       }
+
+       r.logger.Infof("#RmrSender.WhSend - RAN name: %s , Message type: %d - Successfully sent RMR message", rmrMessage.RanName, rmrMessage.MsgType)
+       return nil
+}
+
 func (r *RmrSender) Send(rmrMessage *models.RmrMessage) error {
-       transactionIdByteArr := []byte(rmrMessage.RanName)
-       msg := rmrCgo.NewMBuf(rmrMessage.MsgType, len(rmrMessage.Payload), rmrMessage.RanName, &rmrMessage.Payload, &transactionIdByteArr)
+       msg := rmrCgo.NewMBuf(rmrMessage.MsgType, len(rmrMessage.Payload), rmrMessage.RanName, &rmrMessage.Payload, &rmrMessage.XAction, rmrMessage.GetMsgSrc())
 
-       _, err := (*r.messenger).SendMsg(msg)
+       _, err := r.messenger.SendMsg(msg, true)
 
        if err != nil {
                r.logger.Errorf("#RmrSender.Send - RAN name: %s , Message type: %d - Failed sending message. Error: %v", rmrMessage.RanName, rmrMessage.MsgType, err)
@@ -52,3 +65,16 @@ func (r *RmrSender) Send(rmrMessage *models.RmrMessage) error {
        r.logger.Infof("#RmrSender.Send - RAN name: %s , Message type: %d - Successfully sent RMR message", rmrMessage.RanName, rmrMessage.MsgType)
        return nil
 }
+
+func (r *RmrSender) SendWithoutLogs(rmrMessage *models.RmrMessage) error {
+       msg := rmrCgo.NewMBuf(rmrMessage.MsgType, len(rmrMessage.Payload), rmrMessage.RanName, &rmrMessage.Payload, &rmrMessage.XAction, rmrMessage.GetMsgSrc())
+
+       _, err := r.messenger.SendMsg(msg, false)
+
+       if err != nil {
+               r.logger.Errorf("#RmrSender.Send - RAN name: %s , Message type: %d - Failed sending message. Error: %v", rmrMessage.RanName, rmrMessage.MsgType, err)
+               return err
+       }
+
+       return nil
+}