type: array
items:
type: string
+ policies:
+ type: array
+ items:
+ type: integer
XappDescriptor:
type: object
required:
# The Jenkins job uses this string for the tag in the image name
# for example nexus3.o-ran-sc.org:10004/my-image-name:my-tag
---
-tag: '0.3.0'
+tag: '0.3.1'
RestoreConfigMap(m models.XappDescriptor, cm interface{}) (err error)
ReadConfigMap(name string, ns string, c *interface{}) (err error)
ApplyConfigMap(r models.XAppConfig, action string) (err error)
- GetMessages(name string) (msgs MessageTypes)
+ GetRtmData(name string) (msgs RtmData)
GetNamespace(ns string) string
GetNamesFromHelmRepo() (names []string)
}
cm ConfigMapper
}
-type MessageTypes struct {
+type RtmData struct {
TxMessages []string `json:"txMessages"`
RxMessages []string `json:"rxMessages"`
+ Policies []int64 `json:"Policies"`
}
type EventType string
"path"
"regexp"
"strings"
+ "strconv"
"time"
"gerrit.oran-osc.org/r/ric-plt/appmgr/pkg/appmgr"
return
}
-func (cm *CM) GetMessages(name string) (msgs appmgr.MessageTypes) {
- appmgr.Logger.Info("Fetching tx/rx messages for: %s", name)
+func (cm *CM) GetRtmData(name string) (msgs appmgr.RtmData) {
+ appmgr.Logger.Info("Fetching RT data for xApp=%s", name)
ns := cm.GetNamespace("")
args := fmt.Sprintf("get configmap -o jsonpath='{.data.config-file\\.json}' -n %s %s", ns, cm.GetConfigMapName(name, ns))
for _, m := range v.GetArray("rmr", "rxMessages") {
msgs.RxMessages = append(msgs.RxMessages, strings.Trim(m.String(), `"`))
}
+ for _, m := range v.GetArray("rmr", "policies") {
+ if val, err := strconv.Atoi(strings.Trim(m.String(), `"`)); err == nil {
+ msgs.Policies = append(msgs.Policies, int64(val))
+ }
+ }
return
}
"maxSize": 2072,
"numWorkers": 1,
"txMessages": ["RIC_X2_LOAD_INFORMATION"],
- "rxMessages": ["RIC_X2_LOAD_INFORMATION"]
+ "rxMessages": ["RIC_X2_LOAD_INFORMATION"],
+ "policies": [11, 22, 33]
},
"db": {
"namespace": "ricxapp",
return
}
-func (cm *MockedConfigMapper) GetMessages(name string) (msgs appmgr.MessageTypes) {
+func (cm *MockedConfigMapper) GetRtmData(name string) (msgs appmgr.RtmData) {
return
}
os.Exit(code)
}
-func TestGetMessages(t *testing.T) {
- expectedMsgs := appmgr.MessageTypes{
+func TestGetRtmData(t *testing.T) {
+ expectedMsgs := appmgr.RtmData{
TxMessages: []string{"RIC_X2_LOAD_INFORMATION"},
RxMessages: []string{"RIC_X2_LOAD_INFORMATION"},
+ Policies: []int64{11, 22, 33},
}
util.KubectlExec = func(args string) (out []byte, err error) {
return []byte(kubectlConfigmapOutput), nil
}
- result := NewCM().GetMessages("dummy-xapp")
+ result := NewCM().GetRtmData("dummy-xapp")
if !reflect.DeepEqual(result, expectedMsgs) {
- t.Errorf("TestGetMessages failed: expected: %v, got: %v", expectedMsgs, result)
+ t.Errorf("TestGetRtmData failed: expected: %v, got: %v", expectedMsgs, result)
}
}
return names, nil
}
-func (h *Helm) FillInstanceData(name string, out string, xapp *models.Xapp, msgs appmgr.MessageTypes) {
+func (h *Helm) FillInstanceData(name string, out string, xapp *models.Xapp, rtData appmgr.RtmData) {
ip, port := h.GetEndpointInfo(name)
if ip == "" {
appmgr.Logger.Info("Endpoint IP address not found, using CluserIP")
x.Status = strings.ToLower(x.Status)
x.IP = ip
x.Port = int64(port)
- x.TxMessages = msgs.TxMessages
- x.RxMessages = msgs.RxMessages
+ x.TxMessages = rtData.TxMessages
+ x.RxMessages = rtData.RxMessages
+ x.Policies = rtData.Policies
xapp.Instances = append(xapp.Instances, &x)
}
}
xapp.Version = h.GetVersion(name)
xapp.Status = h.GetState(out)
- h.FillInstanceData(name, out, &xapp, h.cm.GetMessages(name))
+ h.FillInstanceData(name, out, &xapp, h.cm.GetRtmData(name))
return
}
x.Status = status
x.Version = ver
p, _ := strconv.Atoi(port)
- var msgs appmgr.MessageTypes
+ var msgs appmgr.RtmData
instance := &models.XappInstance{
Name: &iname,