feat: 网元直连补充参数配置接口管理

This commit is contained in:
TsMask
2024-07-02 18:54:10 +08:00
parent 745a6b2bc0
commit c2efc26eb0

View File

@@ -68,3 +68,99 @@ func NeConfigInfo(neInfo model.NeInfo, paramName string) (map[string]any, error)
}
return resData, nil
}
// NeConfigInfoEdit 网元配置更新
func NeConfigInfoEdit(neInfo model.NeInfo, paramName string, data map[string]any) (map[string]any, error) {
// array需要层级
loc := ""
if v, ok := data["index"]; ok {
loc = fmt.Sprintf("?loc=%v", v)
}
// 网元参数配置新增array
neUrl := fmt.Sprintf("http://%s:%d/api/rest/systemManagement/v1/elementType/%s/objectType/config/%s%s", neInfo.IP, neInfo.Port, strings.ToLower(neInfo.NeType), paramName, loc)
resBytes, err := fetch.PutJSON(neUrl, data, nil)
var resData map[string]any
if err != nil {
status := err.Error()
logger.Warnf("NeConfigInfoEdit %s Put \"%s\"", status, neUrl)
if strings.HasPrefix(status, "201") || strings.HasPrefix(status, "204") {
return resData, nil
}
return nil, err
}
// 200 成功无数据时
if len(resBytes) == 0 {
return resData, nil
}
// 序列化结果
err = json.Unmarshal(resBytes, &resData)
if err != nil {
logger.Warnf("NeConfigInfoEdit Unmarshal %s", err.Error())
return nil, err
}
return resData, nil
}
// NeConfigInfoAdd 网元配置新增 array
func NeConfigInfoAdd(neInfo model.NeInfo, paramName string, data map[string]any) (map[string]any, error) {
loc, locOk := data["index"] // 层级 index
if !locOk {
return nil, fmt.Errorf("data not index")
}
// 网元参数配置新增array
neUrl := fmt.Sprintf("http://%s:%d/api/rest/systemManagement/v1/elementType/%s/objectType/config/%s?loc=%v", neInfo.IP, neInfo.Port, strings.ToLower(neInfo.NeType), paramName, loc)
resBytes, err := fetch.PostJSON(neUrl, data, nil)
var resData map[string]any
if err != nil {
status := err.Error()
logger.Warnf("NeConfigInfoAdd %s Post \"%s\"", status, neUrl)
if strings.HasPrefix(status, "201") || strings.HasPrefix(status, "204") {
return resData, nil
}
return nil, err
}
// 200 成功无数据时
if len(resBytes) == 0 {
return resData, nil
}
// 序列化结果
err = json.Unmarshal(resBytes, &resData)
if err != nil {
logger.Warnf("NeConfigInfoAdd Unmarshal %s", err.Error())
return nil, err
}
return resData, nil
}
// NeConfigInfoDel 网元配置删除 array
func NeConfigInfoDel(neInfo model.NeInfo, paramName, index string) (map[string]any, error) {
// 网元参数配置删除array
neUrl := fmt.Sprintf("http://%s:%d/api/rest/systemManagement/v1/elementType/%s/objectType/config/%s?loc=%v", neInfo.IP, neInfo.Port, strings.ToLower(neInfo.NeType), paramName, index)
resBytes, err := fetch.Delete(neUrl, nil)
var resData map[string]any
if err != nil {
status := err.Error()
logger.Warnf("NeConfigInfoDel %s Delete \"%s\"", status, neUrl)
if strings.HasPrefix(status, "201") || strings.HasPrefix(status, "204") {
return resData, nil
}
return nil, err
}
// 200 成功无数据时
if len(resBytes) == 0 {
return resData, nil
}
// 序列化结果
err = json.Unmarshal(resBytes, &resData)
if err != nil {
logger.Warnf("NeConfigInfoDel Unmarshal %s", err.Error())
return nil, err
}
return resData, nil
}