69 lines
2.1 KiB
Go
69 lines
2.1 KiB
Go
// 网元HLR服务8080端口。
|
||
// 融合到UDM网元,也许是UDM的HLR服务。
|
||
|
||
package fetchlink
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"strings"
|
||
|
||
"be.ems/src/framework/logger"
|
||
"be.ems/src/framework/utils/fetch"
|
||
"be.ems/src/modules/network_element/model"
|
||
)
|
||
|
||
// HLRTraceStart HLR跟踪任务开始
|
||
//
|
||
// data参数 {traceID:"跟踪任务ID", imsi:"IMSI和MSISDN必填一个,都带的话以IMSI为准", msisdn:""}
|
||
func HLRTraceStart(neInfo model.NeInfo, data map[string]any) (string, error) {
|
||
// 网元参数配置新增(array)
|
||
neUrl := fmt.Sprintf("http://%s:%d/trace-manage/v1/add-task", neInfo.IP, neInfo.Port)
|
||
resBytes, err := fetch.PostJSON(neUrl, data, nil)
|
||
var resData map[string]string
|
||
if err != nil {
|
||
errStr := err.Error()
|
||
logger.Warnf("HLRTraceStart Post \"%s\"", neUrl)
|
||
logger.Errorf("HLRTraceStart %s", errStr)
|
||
return "", fmt.Errorf("NeService HLR API Error")
|
||
}
|
||
|
||
// 序列化结果
|
||
err = json.Unmarshal(resBytes, &resData)
|
||
if err != nil {
|
||
logger.Errorf("HLRTraceStart Unmarshal %s", err.Error())
|
||
return "", err
|
||
}
|
||
if v, ok := resData["code"]; ok && v == "0" {
|
||
return strings.TrimSpace(strings.ToLower(resData["message"])), nil
|
||
}
|
||
return "", fmt.Errorf("%s", resData["message"])
|
||
}
|
||
|
||
// HLRTraceStop HLR跟踪任务停止
|
||
//
|
||
// data参数 {traceIDArray: ["跟踪任务ID数组"]}
|
||
func HLRTraceStop(neInfo model.NeInfo, data map[string]any) (string, error) {
|
||
// 网元参数配置新增(array)
|
||
neUrl := fmt.Sprintf("http://%s:%d/trace-manage/v1/delete-task", neInfo.IP, neInfo.Port)
|
||
resBytes, err := fetch.PostJSON(neUrl, data, nil)
|
||
var resData map[string]string
|
||
if err != nil {
|
||
errStr := err.Error()
|
||
logger.Warnf("HLRTraceStop Post \"%s\"", neUrl)
|
||
logger.Errorf("HLRTraceStop %s", errStr)
|
||
return "", fmt.Errorf("NeService HLR API Error")
|
||
}
|
||
|
||
// 序列化结果
|
||
err = json.Unmarshal(resBytes, &resData)
|
||
if err != nil {
|
||
logger.Errorf("HLRTraceStop Unmarshal %s", err.Error())
|
||
return "", err
|
||
}
|
||
if v, ok := resData["code"]; ok && v == "0" {
|
||
return strings.TrimSpace(strings.ToLower(resData["message"])), nil
|
||
}
|
||
return "", fmt.Errorf("%s", resData["message"])
|
||
}
|