feat: 教学应用配置下发到网元功能
This commit is contained in:
@@ -3,7 +3,9 @@ package service
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
"be.ems/src/framework/utils/parse"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
@@ -205,11 +207,43 @@ func (r *PtNeConfigDataService) ApplyToNe(paramUser, neType string) error {
|
||||
if len(ptConf.ParamData) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// 单层逐个更新
|
||||
if ptConf.ParamType == "list" {
|
||||
dataMap := ptConf.ParamData[0]
|
||||
for k, v := range dataMap {
|
||||
fmt.Println(k, v)
|
||||
for k, v := range ptConf.ParamData[0] {
|
||||
neFetchlink.NeConfigUpdate(neInfo, ptConf.ParamName, "", map[string]any{k: v})
|
||||
}
|
||||
}
|
||||
// 多层逐个更新
|
||||
if ptConf.ParamType == "array" {
|
||||
// 删除原先配置
|
||||
resData, err := neFetchlink.NeConfigInfo(neInfo, ptConf.ParamName)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
if data, ok := resData["data"]; ok {
|
||||
for i := 0; i < len(data.([]any)); i++ { // 倒序遍历
|
||||
originIndex := i
|
||||
newIndex := len(data.([]any)) - originIndex - 1
|
||||
element := data.([]any)[newIndex]
|
||||
loc := parse.Number(element.(map[string]any)["index"])
|
||||
neFetchlink.NeConfigDelete(neInfo, ptConf.ParamName, fmt.Sprint(loc))
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历新增
|
||||
for _, v := range ptConf.ParamData {
|
||||
loc := parse.Number(v["index"])
|
||||
neFetchlink.NeConfigInstall(neInfo, ptConf.ParamName, fmt.Sprint(loc), v)
|
||||
// 检查是否有array子层
|
||||
for vk, vv := range v {
|
||||
if reflect.TypeOf(vv).Kind() == reflect.Slice {
|
||||
for i, item := range vv.([]any) {
|
||||
data := item.(map[string]any)
|
||||
data["index"] = i
|
||||
neFetchlink.NeConfigInstall(neInfo, ptConf.ParamName, fmt.Sprintf("%v/%s/%v", loc, vk, i), data)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user