X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=a1-go%2Fpkg%2Frmr%2Frmr.go;h=2bb2f1b2794c79612d9e07c7cbf245777cd62076;hb=0fb52070afe2234536e8a5778a95d118ce7f2cbe;hp=993e90c2acb7e439e6a843d9a23d89c3b44fc349;hpb=857a953ebb2d8a487ea5b2ee99087871103c8a99;p=ric-plt%2Fa1.git diff --git a/a1-go/pkg/rmr/rmr.go b/a1-go/pkg/rmr/rmr.go index 993e90c..2bb2f1b 100644 --- a/a1-go/pkg/rmr/rmr.go +++ b/a1-go/pkg/rmr/rmr.go @@ -23,6 +23,8 @@ package rmr import ( "encoding/json" + "io/ioutil" + "net/http" "strconv" "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/a1" @@ -32,7 +34,11 @@ import ( ) const ( - a1SourceName = "service-ricplt-a1mediator-http" + a1SourceName = "service-ricplt-a1mediator-http" + a1PolicyRequest = 20010 + ecsServiceHost = "http://ecs-service:8083" + ecsEiTypePath = ecsServiceHost + "/A1-EI/v1/eitypes" + a1EiQueryAllResp = 20014 ) type RmrSender struct { @@ -68,6 +74,26 @@ func NewRMRSender(policyManager *policy.PolicyManager) IRmrSender { return rmrsender } +var RICMessageTypes = map[string]int{ + "A1_POLICY_REQ": 20010, + "A1_POLICY_RESP": 20011, + "A1_POLICY_QUERY": 20012, + "A1_EI_QUERY_ALL": 20013, + "AI_EI_QUERY_ALL_RESP": 20014, + "A1_EI_CREATE_JOB": 20015, + "A1_EI_CREATE_JOB_RESP": 20016, + "A1_EI_DATA_DELIVERY": 20017, +} + +func (rmr *RmrSender) GetRicMessageName(id int) (s string) { + for k, v := range RICMessageTypes { + if id == v { + return k + } + } + return +} + func (rmr *RmrSender) RmrSendToXapp(httpBodyString string, messagetype int) bool { params := &xapp.RMRParams{} @@ -87,7 +113,7 @@ func (rmr *RmrSender) RmrSendToXapp(httpBodyString string, messagetype int) bool func (rmr *RmrSender) Consume(msg *xapp.RMRParams) (err error) { a1.Logger.Debug("In the Consume function") - id := xapp.Rmr.GetRicMessageName(msg.Mtype) + id := rmr.GetRicMessageName(msg.Mtype) a1.Logger.Debug("Message received: name=%s meid=%s subId=%d txid=%s len=%d", id, msg.Meid.RanName, msg.SubId, msg.Xid, msg.PayloadLen) switch id { @@ -140,6 +166,34 @@ func (rmr *RmrSender) Consume(msg *xapp.RMRParams) (err error) { a1.Logger.Error("rmrSendToXapp : message not sent") } } + + case "A1_EI_QUERY_ALL": + a1.Logger.Debug("message recieved ", msg.Payload) + resp, err := http.Get(ecsEiTypePath) + if err != nil { + a1.Logger.Error("Received error while fetching health info: %v", err) + } + if resp.StatusCode != http.StatusOK { + a1.Logger.Warning("Received no reponse from A1-EI service1") + } + a1.Logger.Debug("response from A1-EI service : ", resp) + + defer resp.Body.Close() + respByte, err := ioutil.ReadAll(resp.Body) + + if err != nil { + a1.Logger.Debug("error in response: %+v", respByte) + } + + a1.Logger.Debug("response : %+v", string(respByte)) + + isSent := rmr.RmrSendToXapp(string(respByte), a1EiQueryAllResp) + if isSent { + a1.Logger.Debug("rmrSendToXapp : message sent") + } else { + a1.Logger.Error("rmrSendToXapp : message not sent") + } + default: xapp.Logger.Error("Unknown message type '%d', discarding", msg.Mtype) }