From bb18b57320ae51dc512607c4a6fc5e61c0a74636 Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Tue, 14 Jan 2025 16:08:22 +0800 Subject: [PATCH] fix script decode error and runscript responsemessage assert error --- cmd/agent/app/register/handler/command.go | 5 +++-- cmd/server/app/agentmanager/cmd.go | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/cmd/agent/app/register/handler/command.go b/cmd/agent/app/register/handler/command.go index f796c355..8b37652e 100644 --- a/cmd/agent/app/register/handler/command.go +++ b/cmd/agent/app/register/handler/command.go @@ -9,6 +9,7 @@ package handler import ( "encoding/base64" + "fmt" "path" "strings" @@ -102,8 +103,8 @@ func RunScriptHandler(c *network.SocketClient, msg *protocol.Message) error { decoded_script, err = base64.StdEncoding.DecodeString(d.Script) if err != nil { - errorInfo = "Err decoding base64: " + err.Error() - logger.Error("%s", errorInfo) + errorInfo = fmt.Sprintf("Err decoding base64: %v, %s", d.Script, err.Error()) + logger.Error("Err decoding base64: %v, %s", d.Script, err.Error()) goto ERROR } diff --git a/cmd/server/app/agentmanager/cmd.go b/cmd/server/app/agentmanager/cmd.go index a12ff7dc..7bdf6ed8 100644 --- a/cmd/server/app/agentmanager/cmd.go +++ b/cmd/server/app/agentmanager/cmd.go @@ -8,6 +8,8 @@ package agentmanager import ( + "encoding/base64" + "gitee.com/openeuler/PilotGo/pkg/utils" "gitee.com/openeuler/PilotGo/pkg/utils/message/protocol" ) @@ -25,15 +27,20 @@ func (a *Agent) RunCommand(cmd string) (*utils.CmdResult, error) { // 远程在agent上运行脚本文件 func (a *Agent) RunScript(script string, params []string) (*utils.CmdResult, error) { + encoded_script := base64.StdEncoding.EncodeToString([]byte(script)) data := struct { Script string Params []string }{ - Script: script, + Script: encoded_script, Params: params, } responseMessage, err := a.SendMessageWrapper(protocol.RunScript, data, "failed to run script on agent", 0, nil, "") - return responseMessage.(*utils.CmdResult), err + result, ok := responseMessage.(*utils.CmdResult) + if !ok { + return &utils.CmdResult{}, err + } + return result, err } // chmod [-R] 权限值 文件名 -- Gitee