From 08b3a775f17339c84bc75120526e169b36497501 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Tue, 10 Oct 2023 16:38:54 +0800 Subject: [PATCH] d --- features/cm/ne.go | 4 +- tools/loadpconf/load.go | 181 ++++++++++++++++++++++------------------ 2 files changed, 103 insertions(+), 82 deletions(-) diff --git a/features/cm/ne.go b/features/cm/ne.go index 3ecf8ebf..22c6586a 100644 --- a/features/cm/ne.go +++ b/features/cm/ne.go @@ -766,7 +766,7 @@ func PostNeServiceAction(w http.ResponseWriter, r *http.Request) { neTypeLower := strings.ToLower(neType) action := vars["action"] - neId := services.GetUriParamString(r, "ne_id", ",", false, false) + neId := services.GetUriParamString(r, "neId", ",", false, false) // neInfo := new(dborm.NeInfo) neInfo, err := dborm.XormGetNeInfo(neType, neId) @@ -852,7 +852,7 @@ func PostNeInstanceAction(w http.ResponseWriter, r *http.Request) { //neTypeLower := strings.ToLower(neType) action := vars["action"] - neId := services.GetUriParamString(r, "ne_id", ",", false, false) + neId := services.GetUriParamString(r, "neId", ",", false, false) // neInfo := new(dborm.NeInfo) neInfo, err := dborm.XormGetNeInfo(neType, neId) diff --git a/tools/loadpconf/load.go b/tools/loadpconf/load.go index 80d0e1f1..95131f38 100644 --- a/tools/loadpconf/load.go +++ b/tools/loadpconf/load.go @@ -5,7 +5,6 @@ import ( "fmt" "os" "reflect" - "strconv" "gopkg.in/yaml.v3" ) @@ -52,7 +51,7 @@ func GetYamlConfig() *YamlConfig { return &yamlConfig } -var mapYaml map[string]interface{} +//var mapYaml map[string]interface{} func ReadParamConfig(fileName string) *map[string]interface{} { file, err := os.ReadFile(fileName) @@ -60,7 +59,17 @@ func ReadParamConfig(fileName string) *map[string]interface{} { fmt.Println("yamlFile.Get err", err) } - mapYaml = make(map[string]interface{}) + mapYaml := make(map[string]interface{}) + + // var node yaml.Node + // err = yaml.Unmarshal(file, &node) + // if err != nil { + // fmt.Printf("yaml.Unmarshal: %v when to struct", err) + // } + // err = unmarshalNode(&node, &mapYaml) + // if err != nil { + // fmt.Println("Failed to unmarshalNode:", err) + // } // var node yaml.Node // err = yaml.Unmarshal(file, &node) @@ -135,91 +144,102 @@ func init() { fmt.Println("pfiles:", pfiles) } -// func unmarshalNode(node *yaml.Node, out interface{}) error { -// switch node.Kind { -// case yaml.DocumentNode: -// return unmarshalNode(node.Content[0], out) -// case yaml.MappingNode: -// m := nodeToMap(node) -// return unmarshalMap(m, out) -// case yaml.SequenceNode: -// s := nodeToSlice(node) -// return unmarshalSlice(s, out) -// case yaml.ScalarNode: -// return unmarshalScalar(node, out) -// default: -// return fmt.Errorf("unknown node kind: %v", node.Kind) -// } -// } +func unmarshalNode(node *yaml.Node, out interface{}) error { + switch node.Kind { + case yaml.DocumentNode: + return unmarshalNode(node.Content[0], out) + case yaml.MappingNode: + m := nodeToMap(node) + return unmarshalMap(m, out) + case yaml.SequenceNode: + s := nodeToSlice(node) + return unmarshalSlice(s, out) + case yaml.ScalarNode: + return unmarshalScalar(node, out) + default: + return fmt.Errorf("unknown node kind: %v", node.Kind) + } +} -// func nodeToMap(node *yaml.Node) map[string]*yaml.Node { -// m := make(map[string]*yaml.Node) -// for i := 0; i < len(node.Content); i += 2 { -// key := node.Content[i].Value -// value := node.Content[i+1] -// m[key] = value -// } -// return m -// } +func nodeToMap(node *yaml.Node) map[string]*yaml.Node { + m := make(map[string]*yaml.Node) + for i := 0; i < len(node.Content); i += 2 { + key := node.Content[i].Value + value := node.Content[i+1] + m[key] = value + } + return m +} -// func unmarshalMap(m map[string]*yaml.Node, out interface{}) error { -// data, ok := out.(*map[string]interface{}) -// if !ok { -// return fmt.Errorf("out must be a map[string]interface{}") -// } +func unmarshalMap(m map[string]*yaml.Node, out interface{}) error { + data, ok := out.(*map[string]interface{}) + if !ok { + return fmt.Errorf("out must be a map[string]interface{}") + } -// *data = make(map[string]interface{}) -// for key, value := range m { -// var v interface{} -// err := unmarshalNode(value, &v) -// if err != nil { -// return err -// } -// (*data)[key] = v -// } -// return nil -// } + *data = make(map[string]interface{}) + for key, value := range m { + var v interface{} + err := unmarshalNode(value, &v) + if err != nil { + return err + } + (*data)[key] = v + } + return nil +} -// func nodeToSlice(node *yaml.Node) []*yaml.Node { -// return node.Content -// } +func nodeToSlice(node *yaml.Node) []*yaml.Node { + return node.Content +} -// func unmarshalSlice(s []*yaml.Node, out interface{}) error { -// data, ok := out.(*[]interface{}) -// if !ok { -// return fmt.Errorf("out must be a []interface{}") -// } +func unmarshalSlice(s []*yaml.Node, out interface{}) error { + data, ok := out.(*[]interface{}) + if !ok { + return fmt.Errorf("out must be a []interface{}") + } -// *data = make([]interface{}, len(s)) -// for i, value := range s { -// var v interface{} -// err := unmarshalNode(value, &v) -// if err != nil { -// return err -// } -// (*data)[i] = v -// } -// return nil -// } + *data = make([]interface{}, len(s)) + for i, value := range s { + var v interface{} + err := unmarshalNode(value, &v) + if err != nil { + return err + } + (*data)[i] = v + } + return nil +} -// func unmarshalScalar(node *yaml.Node, out interface{}) error { -// switch node.Tag { -// case "!!str": -// *out = node.Value -// case "!!int": -// *out = node.Value -// case "!!float": -// *out = node.Value -// case "!!bool": -// *out = node.Value == "true" -// case "!!null": -// *out = nil -// default: -// return fmt.Errorf("unknown scalar tag: %v", node.Tag) -// } -// return nil -// } +func unmarshalScalar(node *yaml.Node, out interface{}) error { + switch node.Tag { + case "!!str": + val := reflect.ValueOf(node.Value) + val.Elem().Set(reflect.ValueOf(out)) + //*out = node.Value + case "!!int": + val := reflect.ValueOf(node.Value) + val.Elem().Set(reflect.ValueOf(out)) + //*out = node.Value + case "!!float": + val := reflect.ValueOf(node.Value) + val.Elem().Set(reflect.ValueOf(out)) + //*out = node.Value + case "!!bool": + val := reflect.ValueOf(node.Value == "true") + val.Elem().Set(reflect.ValueOf(out)) + //*out = node.Value == "true" + case "!!null": + val := reflect.ValueOf(node.Value) + val.Elem().Set(reflect.ValueOf(out)) + //*out = nil + default: + return fmt.Errorf("unknown scalar tag: %v", node.Tag) + } + return nil +} +/* func unmarshalNode(node *yaml.Node, out reflect.Value) error { switch node.Kind { case yaml.DocumentNode: @@ -352,3 +372,4 @@ func unmarshalScalar(node *yaml.Node, out reflect.Value) error { } return nil } +*/