From dc5ab043fbb43459b486f1c9d55194073f92964b Mon Sep 17 00:00:00 2001 From: zeaslity Date: Tue, 7 Nov 2023 15:53:38 +0800 Subject: [PATCH] =?UTF-8?q?[=20Agent=20]=20[=20Executor=20]=20-=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=95=E5=B1=82=E6=89=A7=E8=A1=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent-go/executor/CommandExecutor.go | 27 +++++++------------ agent-go/rabbitmq/OctopusMessage.go | 4 +-- .../execute/service/ExecutionServiceImpl.java | 20 +------------- 3 files changed, 13 insertions(+), 38 deletions(-) diff --git a/agent-go/executor/CommandExecutor.go b/agent-go/executor/CommandExecutor.go index 5366524..8da2f23 100644 --- a/agent-go/executor/CommandExecutor.go +++ b/agent-go/executor/CommandExecutor.go @@ -24,12 +24,12 @@ var log = logger2.Log var AgentOsOperatorCache = &AgentOsOperator{} -func Execute(em *ExecutionMessage) ([]string, error) { +func Execute(em *ExecutionMessage) (bool, []string) { var resultLog []string var err error - var realCommand [][]string ok := true + executionContent := em.ExecutionType + "==" + strings.Join(em.FuncContent, "") log.DebugF("em message is => %#v", em) @@ -40,9 +40,6 @@ func Execute(em *ExecutionMessage) ([]string, error) { } else { ok, resultLog = AgentOsOperatorCache.Exec(em.FuncContent[0]) } - if ok { - return resultLog, nil - } } else if strings.HasPrefix(em.ExecutionType, "APP") { // app function @@ -51,39 +48,35 @@ func Execute(em *ExecutionMessage) ([]string, error) { } else { ok, resultLog = AgentOsOperatorCache.Deploy(em.FuncContent[0]) } - if ok { - return resultLog, nil - } else { - return resultLog, nil - } } else { // shell command if em.PipeLineCommand != nil && len(em.PipeLineCommand) != 0 { // 管道命令 resultLog, err = PipeLineCommandExecutor(em.PipeLineCommand) - realCommand = em.PipeLineCommand + executionContent = fmt.Sprintf("%v", em.PipeLineCommand) } else if em.MultiLineCommand != nil && len(em.MultiLineCommand) != 0 { // 多行命令 resultLog, err = MultiLineCommandExecutor(em.MultiLineCommand) - realCommand = em.MultiLineCommand + executionContent = fmt.Sprintf("%v", em.MultiLineCommand) } else { // 单行命令 resultLog, err = FormatAllCommandExecutor(em.SingleLineCommand) - realCommand = [][]string{em.SingleLineCommand} + executionContent = fmt.Sprintf("%v", em.SingleLineCommand) } + } // 归一化错误和日志 if err != nil { - resultLog = append(resultLog, "↓↓↓ 命令 Error 如下 ↓↓↓", err.Error()) + resultLog = append(resultLog, " 命令执行错误如下 ", err.Error()) } + resultLog = append(resultLog, fmt.Sprintf("命令 %s 执行结果为 %b", executionContent, ok)) // debug - commandResult := fmt.Sprintf("Excution Comand are=> %v, Executor Result: %v", realCommand, resultLog) - log.Debug(commandResult) + log.DebugF("%v", resultLog) - return resultLog, err + return ok, resultLog } func PipeLineCommandExecutor(pipeLineCommand [][]string) ([]string, error) { diff --git a/agent-go/rabbitmq/OctopusMessage.go b/agent-go/rabbitmq/OctopusMessage.go index 80ee1ab..2f0d3b9 100644 --- a/agent-go/rabbitmq/OctopusMessage.go +++ b/agent-go/rabbitmq/OctopusMessage.go @@ -131,8 +131,8 @@ func executorOMHandler(octopusMessage *OctopusMessage) { } // 执行命令 - resultLog, err := executor.Execute(executionMessage) - if err == nil { + ok, resultLog := executor.Execute(executionMessage) + if ok { octopusMessage.ResultCode = "200" } else { octopusMessage.ResultCode = "300" diff --git a/server/src/main/java/io/wdd/rpc/execute/service/ExecutionServiceImpl.java b/server/src/main/java/io/wdd/rpc/execute/service/ExecutionServiceImpl.java index d626c56..8107279 100644 --- a/server/src/main/java/io/wdd/rpc/execute/service/ExecutionServiceImpl.java +++ b/server/src/main/java/io/wdd/rpc/execute/service/ExecutionServiceImpl.java @@ -27,7 +27,7 @@ public class ExecutionServiceImpl implements ExecutionService { private static final String MANUAL_COMMAND_TYPE = "manual-command"; - private static final int COMMAND_MAX_WAIT_TIMEOUT = 15; + private static final int COMMAND_MAX_WAIT_TIMEOUT = 60; @Resource OMessageToAgentSender oMessageToAgentSender; @@ -123,24 +123,6 @@ public class ExecutionServiceImpl implements ExecutionService { } - // 解析结果 - if (StringUtils.isNotBlank(octopusMessage - .getResultCode()) && octopusMessage - .getResultCode() - .startsWith("200")) { - String firstLine = String.format( - "%s 执行结果为 true", - executionContent - ); - if (commandResultLog == null) { - commandResultLog = new ArrayList<>(); - } - commandResultLog.add( - 0, - firstLine - ); - } - // debug log.debug( "执行命令 {} {} 在规定时间内结束, 结果为 {} 返回内容为 {}",