+\r
+func (e *E2ResetRequestNotificationHandler) parseE2ResetMessage(payload []byte) (*models.E2ResetRequestMessage, error) {\r
+ e2resetMessage := models.E2ResetRequestMessage{}\r
+ err := xml.Unmarshal(utils.NormalizeXml(payload), &(e2resetMessage.E2ApPDU))\r
+\r
+ if err != nil {\r
+ e.logger.Errorf("#E2ResetRequestNotificationHandler.Handle - error in parsing request message: %+v", err)\r
+ return nil, err\r
+ }\r
+ e.logger.Debugf("#E2ResetRequestNotificationHandler.Handle - Unmarshalling is successful %v", e2resetMessage.E2ApPDU.InitiatingMessage.ProcedureCode)\r
+ return &e2resetMessage, nil\r
+}\r
+\r
+func (h *E2ResetRequestNotificationHandler) handleSuccessfulResponse(ranName string, req *models.NotificationRequest, resetRequest *models.E2ResetRequestMessage) {\r
+\r
+ successResponse := models.NewE2ResetResponseMessage(resetRequest)\r
+ h.logger.Debugf("#E2ResetRequestNotificationHandler.handleSuccessfulResponse - E2_RESET_RESPONSE has been built successfully %+v", successResponse)\r
+\r
+ responsePayload, err := xml.Marshal(&successResponse.E2ApPdu)\r
+ if err != nil {\r
+ h.logger.Warnf("#E2ResetRequestNotificationHandler.handleSuccessfulResponse - RAN name: %s - Error marshalling RIC_E2_RESET_RESP. Payload: %s", ranName, responsePayload)\r
+ }\r
+\r
+ responsePayload = utils.ReplaceEmptyTagsWithSelfClosing(responsePayload, resetRequestEmptyTagsToReplaceToSelfClosingTags)\r
+\r
+ h.logger.Infof("#E2ResetRequestNotificationHandler.handleSuccessfulResponse - payload: %s", responsePayload)\r
+\r
+ msg := models.NewRmrMessage(rmrCgo.RIC_E2_RESET_RESP, ranName, responsePayload, req.TransactionId, req.GetMsgSrc())\r
+ h.logger.Infof("#E2ResetRequestNotificationHandler.handleSuccessfulResponse - RAN name: %s - RIC_E2_RESET_RESP message has been built successfully. Message: %x", ranName, msg)\r
+ err = h.rmrSender.Send(msg)\r
+ if err != nil {\r
+ h.logger.Errorf("#E2ResetRequestNotificationHandler.handleSuccessfulResponse - RAN name: %s - Error sending e2 success response %+v", ranName, msg)\r
+ }\r
+}\r