Add support for RT policies 34/1934/1
authorMohamed Abukar <abukar.mohamed@nokia.com>
Thu, 5 Dec 2019 06:26:30 +0000 (08:26 +0200)
committerMohamed Abukar <abukar.mohamed@nokia.com>
Thu, 5 Dec 2019 06:26:36 +0000 (08:26 +0200)
Change-Id: I8845d7d296634d3b06465385fd35c4ffabac9ee0
Signed-off-by: Mohamed Abukar <abukar.mohamed@nokia.com>
api/appmgr_rest_api.yaml [changed mode: 0644->0755]
container-tag.yaml
pkg/appmgr/types.go
pkg/cm/cm.go
pkg/cm/cm_test.go
pkg/helm/helm.go
pkg/helm/helm_test.go

old mode 100644 (file)
new mode 100755 (executable)
index 04f4f0a..41947b2
@@ -491,6 +491,10 @@ definitions:
         type: array
         items:
           type: string
+      policies:
+         type: array
+         items:
+           type: integer
   XappDescriptor:
     type: object
     required:
index 98ef6c2..efb291d 100755 (executable)
@@ -1,4 +1,4 @@
 # 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'
index afdb0b4..9b49b25 100755 (executable)
@@ -46,7 +46,7 @@ type ConfigMapper interface {
        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)
 }
@@ -69,9 +69,10 @@ type Helm struct {
        cm        ConfigMapper
 }
 
-type MessageTypes struct {
+type RtmData struct {
        TxMessages []string `json:"txMessages"`
        RxMessages []string `json:"rxMessages"`
+       Policies   []int64  `json:"Policies"`
 }
 
 type EventType string
index af5372d..a073c0a 100755 (executable)
@@ -31,6 +31,7 @@ import (
        "path"
        "regexp"
        "strings"
+       "strconv"
        "time"
 
        "gerrit.oran-osc.org/r/ric-plt/appmgr/pkg/appmgr"
@@ -262,8 +263,8 @@ func (cm *CM) FetchChart(name string) (err error) {
        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))
@@ -285,6 +286,11 @@ func (cm *CM) GetMessages(name string) (msgs appmgr.MessageTypes) {
        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
 }
index be600bb..21d1d61 100755 (executable)
@@ -52,7 +52,8 @@ var kubectlConfigmapOutput = `
        "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",
@@ -114,7 +115,7 @@ func (cm *MockedConfigMapper) FetchChart(name string) (err error) {
        return
 }
 
-func (cm *MockedConfigMapper) GetMessages(name string) (msgs appmgr.MessageTypes) {
+func (cm *MockedConfigMapper) GetRtmData(name string) (msgs appmgr.RtmData) {
        return
 }
 
@@ -135,19 +136,20 @@ func TestMain(m *testing.M) {
        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)
        }
 }
 
index a3d7b18..4f847a2 100755 (executable)
@@ -263,7 +263,7 @@ func (h *Helm) GetNames(out string) (names []string, err error) {
        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")
@@ -288,8 +288,9 @@ func (h *Helm) FillInstanceData(name string, out string, xapp *models.Xapp, msgs
                        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)
                }
        }
@@ -300,7 +301,7 @@ func (h *Helm) ParseStatus(name string, out string) (xapp models.Xapp, err error
        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
 }
 
index fb72358..9bc1226 100755 (executable)
@@ -165,7 +165,7 @@ func generateXapp(name, status, ver, iname, istatus, ip, port string) (x models.
        x.Status = status
        x.Version = ver
        p, _ := strconv.Atoi(port)
-       var msgs appmgr.MessageTypes
+       var msgs appmgr.RtmData
 
        instance := &models.XappInstance{
                Name:       &iname,