From 8566c6621f8b5c9ad039d76e097394c832890772 Mon Sep 17 00:00:00 2001 From: zhanghan Date: Tue, 14 Oct 2025 15:56:59 +0800 Subject: [PATCH] get script content by script id --- automation/agent/exec-script/model/script.go | 1 + .../module/job_action/service/exec.go | 26 ++++++++++++++ .../module/script_library/controller/exec.go | 34 ------------------- .../script_library/dao/script_version.go | 13 +++++++ .../internal/module/script_library/router.go | 5 --- 5 files changed, 40 insertions(+), 39 deletions(-) create mode 100644 automation/server/internal/module/job_action/service/exec.go delete mode 100644 automation/server/internal/module/script_library/controller/exec.go diff --git a/automation/agent/exec-script/model/script.go b/automation/agent/exec-script/model/script.go index 3033b724..8299431b 100644 --- a/automation/agent/exec-script/model/script.go +++ b/automation/agent/exec-script/model/script.go @@ -7,6 +7,7 @@ type CmdResult struct { } type ScriptsRun struct { + JobId string ScriptType string ScriptContent string Params string diff --git a/automation/server/internal/module/job_action/service/exec.go b/automation/server/internal/module/job_action/service/exec.go new file mode 100644 index 00000000..709dbc0d --- /dev/null +++ b/automation/server/internal/module/job_action/service/exec.go @@ -0,0 +1,26 @@ +package service + +import ( + "github.com/google/uuid" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/exec" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/script_library/dao" +) + +func ExecScript(ips []string, scriptID, params string, timeoutSec int) error { + scriptType, encodeScriptContent, err := dao.GetPublishedScriptByScriptId(scriptID) + if err != nil { + return err + } + + for _, ip := range ips { + sr := exec.ScriptsRun{ + JobId: uuid.New().String(), + ScriptType: scriptType, + ScriptContent: encodeScriptContent, + Params: params, + TimeOut: timeoutSec, + } + exec.ExecScript(ip, sr) + } + return nil +} diff --git a/automation/server/internal/module/script_library/controller/exec.go b/automation/server/internal/module/script_library/controller/exec.go deleted file mode 100644 index 61149fa2..00000000 --- a/automation/server/internal/module/script_library/controller/exec.go +++ /dev/null @@ -1,34 +0,0 @@ -package controller - -import ( - "gitee.com/openeuler/PilotGo/sdk/common" - "gitee.com/openeuler/PilotGo/sdk/response" - "github.com/gin-gonic/gin" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" - "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/utils" -) - -func ExecScriptHandler(c *gin.Context) { - var sr struct { - UUIDS []string `json:"UUIDS"` - ScriptType string `json:"script_type"` - ScriptContent string `json:"script_content"` - Params string `json:"params"` - TimeOutSec int `json:"timeoutSec"` - } - if err := c.ShouldBindJSON(&sr); err != nil { - response.Fail(c, nil, err.Error()) - return - } - _, err := global.App.Client.MachineList() - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - result, err := global.App.Client.AgentRunScripts(&common.Batch{MachineUUIDs: sr.UUIDS}, sr.ScriptType, utils.EncodeScriptContent(sr.ScriptContent), sr.Params, sr.TimeOutSec) - if err != nil { - response.Fail(c, nil, err.Error()) - return - } - response.Success(c, result, "success") -} diff --git a/automation/server/internal/module/script_library/dao/script_version.go b/automation/server/internal/module/script_library/dao/script_version.go index 39198951..1283dbae 100644 --- a/automation/server/internal/module/script_library/dao/script_version.go +++ b/automation/server/internal/module/script_library/dao/script_version.go @@ -9,6 +9,7 @@ import ( "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/script" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/script_library/model" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/utils" ) func GetScriptVersions(scriptId string) (*model.ScriptVersionResponse, error) { @@ -144,3 +145,15 @@ func GetLatestScriptVersion(scriptId string) (string, error) { } return sv.Version, nil } + +func GetPublishedScriptByScriptId(scriptId string) (string, string, error) { + var s model.Script + if err := global.App.MySQL.Model(&model.Script{}).Where("script_id = ?", scriptId).First(&s).Error; err != nil { + return "", "", err + } + var sv model.ScriptVersion + if err := global.App.MySQL.Model(&model.ScriptVersion{}).Where("script_id = ? AND status = ?", scriptId, script.Published).First(&sv).Error; err != nil { + return s.ScriptType.String(), "", err + } + return s.ScriptType.String(), utils.EncodeScriptContent(sv.Content), nil +} diff --git a/automation/server/internal/module/script_library/router.go b/automation/server/internal/module/script_library/router.go index 51202852..b9f84d7b 100644 --- a/automation/server/internal/module/script_library/router.go +++ b/automation/server/internal/module/script_library/router.go @@ -30,9 +30,4 @@ func ScriptLibraryHandler(router *gin.RouterGroup) { tag.PUT("/update", controller.UpdateTagHandler) tag.DELETE("/delete", controller.DeleteTagHandler) } - - exec := router.Group("/exec") - { - exec.POST("/script", controller.ExecScriptHandler) - } } -- Gitee