"net/http"
"strconv"
+ "gerrit.o-ran-sc.org/r/ric-plt/a1/config"
"gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/a1"
"gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/models"
"gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/policy"
}
func NewRMRSender(policyManager *policy.PolicyManager) IRmrSender {
+ config := config.ParseConfiguration()
RMRclient := xapp.NewRMRClientWithParams(&xapp.RMRClientParams{
StatDesc: "",
RmrData: xapp.PortData{
- //TODO: Read configuration from config file
- Name: "",
- MaxSize: 65534,
- ThreadType: 0,
- LowLatency: false,
- FastAck: false,
- MaxRetryOnFailure: 1,
- Port: 4561,
+
+ Name: config.Name,
+ MaxSize: config.MaxSize,
+ ThreadType: config.ThreadType,
+ LowLatency: config.LowLatency,
+ FastAck: config.FastAck,
+ MaxRetryOnFailure: config.MaxRetryOnFailure,
+ Port: config.Port,
},
})
a1.Logger.Error("Unmarshal error : %+v", err)
return err
}
- a1.Logger.Debug("message recieved for %d and %d with status : %s", result["policy_type_id"], result["policy_instance_id"], result["status"])
- rmr.policyManager.SetPolicyInstanceStatus(int(result["policy_type_id"].(float64)), int(result["policy_instance_id"].(float64)), result["status"].(string))
+ policyTypeId := int(result["policy_type_id"].(float64))
+ policyInstanceId := result["policy_instance_id"].(string)
+ policyHandlerId := result["handler_id"].(string)
+ policyStatus := result["status"].(string)
+
+ a1.Logger.Debug("message recieved for %d and %s with status : %s", policyTypeId, policyInstanceId, policyStatus)
+ rmr.policyManager.SetPolicyInstanceStatus(policyTypeId, policyInstanceId, policyStatus)
+ err = rmr.policyManager.SendPolicyStatusNotification(policyTypeId, policyInstanceId, policyHandlerId, policyStatus)
+ if err != nil {
+ a1.Logger.Debug("failed to send policy status notification %v+", err)
+ }
+
case "A1_POLICY_QUERY":
a1.Logger.Debug("Recived policy query")
a1.Logger.Debug("message recieved ", msg.Payload)