X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fappmgr%2Fdesc.go;h=7f3344405487f0dbbad06bfb0549349ffe56bc0c;hb=4021ae6af0b166342a17c2f140fc0b7cc338dea7;hp=2f55460590e38d2de024804835775e3067d77c60;hpb=b175b949d5e3a9caf78e2c0c0db225d08bd73b07;p=ric-plt%2Fappmgr.git diff --git a/cmd/appmgr/desc.go b/cmd/appmgr/desc.go index 2f55460..7f33444 100755 --- a/cmd/appmgr/desc.go +++ b/cmd/appmgr/desc.go @@ -24,6 +24,7 @@ import ( "errors" "fmt" "github.com/spf13/viper" + "github.com/valyala/fastjson" "github.com/xeipuuv/gojsonschema" "io/ioutil" "log" @@ -64,13 +65,14 @@ type CMError struct { } func (cm *ConfigMap) UploadConfig() (cfg []XAppConfig) { + ns := cm.GetNamespace("") for _, name := range cm.GetNamesFromHelmRepo() { if name == "appmgr" { continue } c := XAppConfig{ - Metadata: ConfigMetadata{Name: name, Namespace: "ricxapp", ConfigName: name + "-appconfig"}, + Metadata: ConfigMetadata{Name: name, Namespace: ns, ConfigName: name + "-appconfig"}, } err := cm.ReadSchema(name, &c) @@ -78,7 +80,7 @@ func (cm *ConfigMap) UploadConfig() (cfg []XAppConfig) { continue } - err = cm.ReadConfigMap(c.Metadata.ConfigName, "ricxapp", &c.Configuration) + err = cm.ReadConfigMap(c.Metadata.ConfigName, ns, &c.Configuration) if err != nil { log.Println("No active configMap found, using default!") } @@ -134,7 +136,7 @@ func (cm *ConfigMap) ApplyConfigMap(r XAppConfig, action string) (err error) { Data: r.Configuration, } - cmJson, err := json.Marshal(c) + cmJson, err := json.Marshal(c.Data) if err != nil { log.Println("Config marshalling failed: ", err) return @@ -158,6 +160,13 @@ func (cm *ConfigMap) ApplyConfigMap(r XAppConfig, action string) (err error) { return } +func (cm *ConfigMap) GetConfigMap(m XappDeploy, c *interface{}) (err error) { + if m.ConfigName == "" { + m.ConfigName = m.Name + "-appconfig" + } + return cm.ReadConfigMap(m.ConfigName, m.Namespace, c) +} + func (cm *ConfigMap) CreateConfigMap(r XAppConfig) (errList []CMError, err error) { if errList, err = cm.Validate(r); err != nil { return @@ -282,5 +291,39 @@ func (cm *ConfigMap) FetchChart(name string) (err error) { func (cm *ConfigMap) GetMessages(name string) (msgs MessageTypes) { log.Println("Fetching tx/rx messages for: ", name) + + ns := cm.GetNamespace("") + args := fmt.Sprintf("get configmap -o jsonpath='{.data.config-file\\.json}' -n %s %s-appconfig", ns, name) + out, err := KubectlExec(args) + if err != nil { + return + } + + var p fastjson.Parser + v, err := p.Parse(string(out)) + if err != nil { + log.Printf("fastjson.Parser for '%s' failed: %v", name, err) + return + } + + for _, m := range v.GetArray("rmr", "txMessages") { + msgs.TxMessages = append(msgs.TxMessages, strings.Trim(m.String(), `"`)) + } + for _, m := range v.GetArray("rmr", "rxMessages") { + msgs.RxMessages = append(msgs.RxMessages, strings.Trim(m.String(), `"`)) + } + return } + +func (cm *ConfigMap) GetNamespace(ns string) string { + if ns != "" { + return ns + } + + ns = viper.GetString("xapp.namespace") + if ns == "" { + ns = "ricxapp" + } + return ns +}