Merge "[RIC-435] DevOps: Create Simulator on K8S"
[ric-plt/e2mgr.git] / E2Manager / models / e2_setup_request_message.go
index 44fe5f8..f7088b8 100644 (file)
@@ -21,10 +21,7 @@ package models
 
 import (
        "encoding/xml"
-       "errors"
-       "fmt"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
-       "strconv"
        "strings"
 )
 
@@ -135,9 +132,9 @@ type E2SetupRequestMessage struct {
 
 type RanFunctionItem struct {
        Text                  string `xml:",chardata"`
-       RanFunctionID         string `xml:"ranFunctionID"`
+       RanFunctionID         uint32 `xml:"ranFunctionID"`
        RanFunctionDefinition string `xml:"ranFunctionDefinition"`
-       RanFunctionRevision   string `xml:"ranFunctionRevision"`
+       RanFunctionRevision   uint32 `xml:"ranFunctionRevision"`
 }
 
 type RANfunctionsList struct {
@@ -156,47 +153,31 @@ type RANfunctionsList struct {
        } `xml:"ProtocolIE-SingleContainer"`
 }
 
-func (m *E2SetupRequestMessage) ExtractRanFunctionsList() ([]*entities.RanFunction, error) {
-       list := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList.ProtocolIESingleContainer
-       funcs := make([]*entities.RanFunction, len(list))
+func (m *E2SetupRequestMessage) ExtractRanFunctionsList() []*entities.RanFunction {
+       // TODO: verify e2SetupRequestIEs structure with Adi
+       e2SetupRequestIes := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs
+       if len(e2SetupRequestIes) < 2 {
+               return nil
+       }
+
+       ranFunctionsListContainer := e2SetupRequestIes[1].Value.RANfunctionsList.ProtocolIESingleContainer
+       funcs := make([]*entities.RanFunction, len(ranFunctionsListContainer))
        for i := 0; i < len(funcs); i++ {
-               funcs[i] = &entities.RanFunction{}
-               id, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionID, 10, 32)
-               if err != nil {
-                       return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.ExtractRanFunctionsList - Failed parse uint RanFunctionID from %s", list[i].Value.RANfunctionItem.RanFunctionID))
-               }
-               funcs[i].RanFunctionId = uint32(id)
-               rev, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionRevision, 10, 32)
-               if err != nil {
-                       return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.ExtractRanFunctionsList - Failed parse uint RanFunctionRevision from %s", list[i].Value.RANfunctionItem.RanFunctionRevision))
+               ranFunctionItem := ranFunctionsListContainer[i].Value.RANfunctionItem
+
+               funcs[i] = &entities.RanFunction{
+                       RanFunctionId:         ranFunctionItem.RanFunctionID,
+                       RanFunctionDefinition: ranFunctionItem.RanFunctionDefinition,
+                       RanFunctionRevision:   ranFunctionItem.RanFunctionRevision,
                }
-               funcs[i].RanFunctionDefinition = m.trimSpaces(list[i].Value.RANfunctionItem.RanFunctionDefinition)
-               funcs[i].RanFunctionRevision = uint32(rev)
        }
-       return funcs, nil
+       return funcs
 }
 
 func (m *E2SetupRequestMessage) getGlobalE2NodeId() GlobalE2NodeId {
        return m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID
 }
 
-//func (m *E2SetupRequestMessage) GetNodeType() entities.Node_Type {
-//     globalE2NodeId := m.getGlobalE2NodeId()
-//     if id := globalE2NodeId.GNB.GlobalGNBID.PlmnID; id != "" {
-//             return entities.Node_GNB
-//     }
-//     if id := globalE2NodeId.EnGNB.GlobalGNBID.PlmnID; id != "" {
-//             return entities.Node_GNB
-//     }
-//     if id := globalE2NodeId.ENB.GlobalENBID.PlmnID; id != "" {
-//             return entities.Node_ENB
-//     }
-//     if id := globalE2NodeId.NgENB.GlobalNgENBID.PlmnID; id != "" {
-//             return entities.Node_ENB
-//     }
-//     return entities.Node_UNKNOWN
-//}
-
 func (m *E2SetupRequestMessage) GetPlmnId() string {
        globalE2NodeId := m.getGlobalE2NodeId()
        if id := globalE2NodeId.GNB.GlobalGNBID.PlmnID; id != "" {