46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"fmt"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/data"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model/message"
|
|
"github.com/goccy/go-json"
|
|
"github.com/golang/glog"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func GetDeviceLogs(funcName, serialNo string, lineNum int64) ([]string, error) {
|
|
boy := map[string]interface{}{
|
|
"lineNum": lineNum,
|
|
}
|
|
body, _ := json.Marshal(boy)
|
|
sub := strings.ReplaceAll(message.TO_AGENT_UNICAST_SUBJECT, "{rid}", serialNo)
|
|
dat := message.MsgModel{
|
|
Body: body,
|
|
Func: funcName,
|
|
Rid: serialNo,
|
|
Version: "v1",
|
|
}
|
|
payload, _ := json.Marshal(dat)
|
|
msg, err := data.Nc.Request(sub, payload, 10*time.Second)
|
|
if err != nil {
|
|
glog.Errorf("查询日志请求失败:%v", err)
|
|
return nil, err
|
|
}
|
|
res, err := message.UnmarshalMsgRespModel(msg.Data)
|
|
if err != nil {
|
|
glog.Errorf("日志反序列化失败:%v", err)
|
|
return nil, err
|
|
}
|
|
if res.Code != 200 {
|
|
glog.Error("查询日志返回数据异常!")
|
|
return nil, err
|
|
}
|
|
deStr, err := base64.StdEncoding.DecodeString(fmt.Sprint(res.Data))
|
|
result := make([]string, 0)
|
|
json.Unmarshal(deStr, &result)
|
|
return result, nil
|
|
}
|