[ Cmii ] [ Octopus ] - reformat agent-go - 2

This commit is contained in:
zeaslity
2024-03-29 15:04:27 +08:00
parent 1d32d7dd04
commit 77c689abd7
6 changed files with 128 additions and 76 deletions

View File

@@ -3,11 +3,14 @@ package a_executor
import (
"bufio"
"bytes"
"encoding/json"
"fmt"
"os/exec"
"strconv"
"strings"
"wdd.io/agent-common/logger"
"wdd.io/agent-common/utils"
"wdd.io/agent-go/rabbitmq"
)
type ExecutionMessage struct {
@@ -28,35 +31,45 @@ var AgentOsOperatorCache = &AgentOsOperator{}
func Activate() {
log.Info("Module [ EXECUTOR ] activated !")
//// 转换类型
//executionMsgString := octopusMessage.Content.(string)
//
//// 解析 ExecutionMessage
//var executionMessage *a_executor.ExecutionMessage
//err := json.Unmarshal([]byte(executionMsgString), &executionMessage)
//if err != nil {
// log.Error(fmt.Sprintf("execution message convert to json is wrong! msg is => %s", executionMsgString))
// return
//}
//
//// 执行命令
//ok, resultLog := a_executor.Execute(executionMessage)
//if ok {
// octopusMessage.ResultCode = "200"
//} else {
// octopusMessage.ResultCode = "300"
//}
//
//// 返回结果
//if executionMessage.NeedResultReplay {
// // send back the result log
// octopusMessage.Result = resultLog
//}
//// 返回时间
//octopusMessage.ACTime = utils.ParseDateTimeTime()
//
//// 返回结果
//octopusMessage.SendToOctopusServer()
// 死循环获取channel中的数据
for {
if octopusMessage, ok := <-rabbitmq.BusinessRuntimeQueue.ReceiveChan.ExecutorRChan; ok {
// 处理数据
// 转换类型
executionMsgString := octopusMessage.Content.(string)
//解析 ExecutionMessage
var executionMessage *ExecutionMessage
err := json.Unmarshal([]byte(executionMsgString), &executionMessage)
if err != nil {
log.Error(fmt.Sprintf("execution message convert to json is wrong! msg is => %s", executionMsgString))
return
}
// 执行命令
ok, resultLog := Execute(executionMessage)
if ok {
octopusMessage.ResultCode = "200"
} else {
octopusMessage.ResultCode = "300"
}
// 返回结果
if executionMessage.NeedResultReplay {
// send back the result log
octopusMessage.Result = resultLog
}
// 返回时间
octopusMessage.ACTime = utils.ParseDateTimeTime()
// 返回结果
octopusMessage.SendToOctopusServer()
} else {
// channel已关闭跳出循环
log.ErrorF("business queue [ EXECUTOR ] receive chan has closed !")
break
}
}
}
func Execute(em *ExecutionMessage) (bool, []string) {