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 }