- namespace := cm.GetNamespace("")
- for _, name := range cm.GetNamesFromHelmRepo() {
- var activeConfig interface{}
- xAppName := name
- if err := cm.GetConfigmap(xAppName, namespace, &activeConfig); err != nil {
- appmgr.Logger.Info("No active configMap found for '%s', ignoring ...", xAppName)
- continue
- }
-
- if Element != "" {
- m := activeConfig.(map[string]interface{})
- if m[Element] == nil {
- appmgr.Logger.Info("xApp '%s' doesn't have requested element '%s' in config", name, Element)
- continue
- }
- activeConfig = m[Element]
- }
-
- c := models.XAppConfig{
- Metadata: &models.ConfigMetadata{XappName: &xAppName, Namespace: &namespace},
- Config: activeConfig,
- }
- configList = append(configList, &c)
- }
- return
+ namespace := cm.GetNamespace("")
+ for _, name := range cm.GetNamesFromHelmRepo() {
+ var activeConfig interface{}
+ xAppName := name
+ if err := cm.GetConfigmap(xAppName, namespace, &activeConfig); err != nil {
+ appmgr.Logger.Info("No active configMap found for '%s', ignoring ...", xAppName)
+ continue
+ }
+
+ if Element != "" {
+ m := activeConfig.(map[string]interface{})
+ if m[Element] == nil {
+ appmgr.Logger.Info("xApp '%s' doesn't have requested element '%s' in config", name, Element)
+ continue
+ }
+ activeConfig = m[Element]
+ }
+
+ c := models.XAppConfig{
+ Metadata: &models.ConfigMetadata{XappName: &xAppName, Namespace: &namespace},
+ Config: activeConfig,
+ }
+ configList = append(configList, &c)
+ }
+ return
- fmt.Printf("Configmap update: xappName=%s namespace=%s config: %v\n", *r.Metadata.XappName, *r.Metadata.Namespace, r.Config)
- if validationErrors, err := cm.Validate(r); err != nil {
- return validationErrors, err
- }
-
- cmContent, err := cm.BuildConfigMap(r)
- if err != nil {
- return nil, err
- }
-
- if err := cm.GenerateJSONFile(cmContent); err != nil {
- return nil, err
- }
- err = cm.ReplaceConfigMap(*r.Metadata.XappName, *r.Metadata.Namespace)
-
- return nil, err
+ fmt.Printf("Configmap update: xappName=%s namespace=%s config: %v\n", *r.Metadata.XappName, *r.Metadata.Namespace, r.Config)
+ if validationErrors, err := cm.Validate(r); err != nil {
+ return validationErrors, err
+ }
+
+ cmContent, err := cm.BuildConfigMap(r)
+ if err != nil {
+ return nil, err
+ }
+
+ if err := cm.GenerateJSONFile(cmContent); err != nil {
+ return nil, err
+ }
+ err = cm.ReplaceConfigMap(*r.Metadata.XappName, *r.Metadata.Namespace)
+
+ return nil, err
- configJson, err := json.Marshal(r.Config)
- if err != nil {
- appmgr.Logger.Info("Config marshalling failed: %v", err)
- return "", err
- }
-
- cmContent, err := cm.ReadConfigmap(*r.Metadata.XappName, *r.Metadata.Namespace)
- if err != nil {
- return "", err
- }
-
- v, err := cm.ParseJson(cmContent)
- if err == nil {
- v.Set("controls", fastjson.MustParse(string(configJson)))
- fmt.Println(v.String())
- return v.String(), nil
- }
-
- return "", err
+ configJson, err := json.Marshal(r.Config)
+ if err != nil {
+ appmgr.Logger.Info("Config marshalling failed: %v", err)
+ return "", err
+ }
+
+ cmContent, err := cm.ReadConfigmap(*r.Metadata.XappName, *r.Metadata.Namespace)
+ if err != nil {
+ return "", err
+ }
+
+ v, err := cm.ParseJson(cmContent)
+ if err == nil {
+ v.Set("controls", fastjson.MustParse(string(configJson)))
+ fmt.Println(v.String())
+ return v.String(), nil
+ }
+
+ return "", err
- cmJson, err := json.RawMessage(jsonString).MarshalJSON()
- if err != nil {
- appmgr.Logger.Error("Config marshalling failed: %v", err)
- return err
- }
-
- err = ioutil.WriteFile(viper.GetString("xapp.tmpConfig"), cmJson, 0644)
- if err != nil {
- appmgr.Logger.Error("WriteFile failed: %v", err)
- return err
- }
-
- return nil
+ cmJson, err := json.RawMessage(jsonString).MarshalJSON()
+ if err != nil {
+ appmgr.Logger.Error("Config marshalling failed: %v", err)
+ return err
+ }
+
+ err = ioutil.WriteFile(viper.GetString("xapp.tmpConfig"), cmJson, 0644)
+ if err != nil {
+ appmgr.Logger.Error("WriteFile failed: %v", err)
+ return err
+ }
+
+ return nil
- f, err := ioutil.ReadFile(name)
- if err != nil {
- appmgr.Logger.Info("Reading '%s' file failed: %v", name, err)
- return
- }
-
- err = json.Unmarshal(f, &data)
- if err != nil {
- appmgr.Logger.Info("Unmarshalling '%s' file failed: %v", name, err)
- return
- }
-
- return
+ f, err := ioutil.ReadFile(name)
+ if err != nil {
+ appmgr.Logger.Info("Reading '%s' file failed: %v", name, err)
+ return
+ }
+
+ err = json.Unmarshal(f, &data)
+ if err != nil {
+ appmgr.Logger.Info("Unmarshalling '%s' file failed: %v", name, err)
+ return
+ }
+
+ return
- 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))
- out, err := kubeExec(args)
- if err != nil {
- return
- }
-
- var p fastjson.Parser
- v, err := p.Parse(string(out))
- if err != nil {
- appmgr.Logger.Info("fastjson.Parser for '%s' failed: %v", name, err)
- return
- }
-
- if v.Exists("rmr") {
- 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(), `"`))
- }
-
- 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))
- }
- }
- } else {
- for _, p := range v.GetArray("messaging", "ports") {
- appmgr.Logger.Info("txMessages=%v, rxMessages=%v", p.GetArray("txMessages"), p.GetArray("rxMessages"))
- for _, m := range p.GetArray("txMessages") {
- msgs.TxMessages = append(msgs.TxMessages, strings.Trim(m.String(), `"`))
- }
-
- for _, m := range p.GetArray("rxMessages") {
- msgs.RxMessages = append(msgs.RxMessages, strings.Trim(m.String(), `"`))
- }
-
- for _, m := range p.GetArray("policies") {
- if val, err := strconv.Atoi(strings.Trim(m.String(), `"`)); err == nil {
- msgs.Policies = append(msgs.Policies, int64(val))
- }
- }
- }
- }
- return
+ 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))
+ out, err := kubeExec(args)
+ if err != nil {
+ return
+ }
+
+ var p fastjson.Parser
+ v, err := p.Parse(string(out))
+ if err != nil {
+ appmgr.Logger.Info("fastjson.Parser for '%s' failed: %v", name, err)
+ return
+ }
+
+ if v.Exists("rmr") {
+ 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(), `"`))
+ }
+
+ 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))
+ }
+ }
+ } else {
+ for _, p := range v.GetArray("messaging", "ports") {
+ appmgr.Logger.Info("txMessages=%v, rxMessages=%v", p.GetArray("txMessages"), p.GetArray("rxMessages"))
+ for _, m := range p.GetArray("txMessages") {
+ msgs.TxMessages = append(msgs.TxMessages, strings.Trim(m.String(), `"`))
+ }
+
+ for _, m := range p.GetArray("rxMessages") {
+ msgs.RxMessages = append(msgs.RxMessages, strings.Trim(m.String(), `"`))
+ }
+
+ for _, m := range p.GetArray("policies") {
+ if val, err := strconv.Atoi(strings.Trim(m.String(), `"`)); err == nil {
+ msgs.Policies = append(msgs.Policies, int64(val))
+ }
+ }
+ }
+ }
+ return
- rname := viper.GetString("helm.repo-name")
-
- cmdArgs := strings.Join([]string{"search ", rname}, "")
- out, err := helmExec(cmdArgs)
- if err != nil {
- return
- }
-
- re := regexp.MustCompile(rname + `/.*`)
- result := re.FindAllStringSubmatch(string(out), -1)
- if result != nil {
- var tmp string
- for _, v := range result {
- fmt.Sscanf(v[0], "%s", &tmp)
- names = append(names, strings.Split(tmp, "/")[1])
- }
- }
- return names
+ rname := viper.GetString("helm.repo-name")
+
+ var cmdArgs string = ""
+ if EnvHelmVersion == HELM_VERSION_3 {
+ cmdArgs = strings.Join([]string{"search repo ", rname}, "")
+ }else {
+ cmdArgs = strings.Join([]string{"search ", rname}, "")
+ }
+
+ out, err := helmExec(cmdArgs)
+ if err != nil {
+ return
+ }
+
+ re := regexp.MustCompile(rname + `/.*`)
+ result := re.FindAllStringSubmatch(string(out), -1)
+ if result != nil {
+ var tmp string
+ for _, v := range result {
+ fmt.Sscanf(v[0], "%s", &tmp)
+ names = append(names, strings.Split(tmp, "/")[1])
+ }
+ }
+ return names
- schemaLoader := gojsonschema.NewGoLoader(schema)
- documentLoader := gojsonschema.NewGoLoader(cfg)
-
- result, err := gojsonschema.Validate(schemaLoader, documentLoader)
- if err != nil {
- appmgr.Logger.Info("Validation failed: %v", err)
- return
- }
-
- if result.Valid() == false {
- appmgr.Logger.Info("The document is not valid, Errors: %v", result.Errors())
- for _, desc := range result.Errors() {
- field := desc.Field()
- validationError := desc.Description()
- errList = append(errList, &models.ConfigValidationError{Field: &field, Error: &validationError})
- }
- return errList, errors.New("Validation failed!")
- }
- appmgr.Logger.Info("Config validation successful!")
-
- return
+ schemaLoader := gojsonschema.NewGoLoader(schema)
+ documentLoader := gojsonschema.NewGoLoader(cfg)
+
+ result, err := gojsonschema.Validate(schemaLoader, documentLoader)
+ if err != nil {
+ appmgr.Logger.Info("Validation failed: %v", err)
+ return
+ }
+
+ if result.Valid() == false {
+ appmgr.Logger.Info("The document is not valid, Errors: %v", result.Errors())
+ for _, desc := range result.Errors() {
+ field := desc.Field()
+ validationError := desc.Description()
+ errList = append(errList, &models.ConfigValidationError{Field: &field, Error: &validationError})
+ }
+ return errList, errors.New("Validation failed!")
+ }
+ appmgr.Logger.Info("Config validation successful!")
+
+ return