From 2e604632c0e4b23f91fbe937c02b8019123f216b Mon Sep 17 00:00:00 2001 From: zhanghan Date: Thu, 27 Nov 2025 15:53:38 +0800 Subject: [PATCH] Add reference fields and script execution feedback information --- automation/agent/exec/service/common.go | 2 +- .../module/job_workflow/dao/workflow.go | 4 +- .../module/script_library/dao/script.go | 18 +++++---- .../script_library/dao/script_version.go | 6 +-- .../module/script_library/model/script.go | 38 +++++++++++-------- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/automation/agent/exec/service/common.go b/automation/agent/exec/service/common.go index af40b92e..279361da 100644 --- a/automation/agent/exec/service/common.go +++ b/automation/agent/exec/service/common.go @@ -196,7 +196,7 @@ func runScriptWithCancel(interpreter, scriptPath string, params string, timeoutS cmd.Stderr = &stderr if err := cmd.Start(); err != nil { - return "", "", model.SubJobFailed, -1, fmt.Errorf("启动脚本执行失败: %s", err.Error()) + return "", fmt.Sprintf("启动脚本执行失败: %s", err.Error()), model.SubJobFailed, -1, fmt.Errorf("启动脚本执行失败: %s", err.Error()) } done := make(chan error, 1) diff --git a/automation/server/internal/module/job_workflow/dao/workflow.go b/automation/server/internal/module/job_workflow/dao/workflow.go index ece27a7f..54748101 100644 --- a/automation/server/internal/module/job_workflow/dao/workflow.go +++ b/automation/server/internal/module/job_workflow/dao/workflow.go @@ -90,7 +90,7 @@ func CreateWorkflow(dto *model.TaskWorkflowDTO) error { if len(dto.Scripts) > 0 { for i, script := range dto.Scripts { - scriptVersionId, content, _ := scriptlibrary.GetPublishedScriptContentByScriptId(script.ScriptId) + scriptVersionId, _, content, _ := scriptlibrary.GetPublishedScriptContentByScriptId(script.ScriptId) dto.Scripts[i].WorkflowId = workflowId dto.Scripts[i].ScriptContent = content dto.Scripts[i].ScriptVersionId = scriptVersionId @@ -220,7 +220,7 @@ func UpdateWorkflow(dto *model.TaskWorkflowDTO) error { if len(dto.Scripts) > 0 { for i, script := range dto.Scripts { - scriptVersionId, content, _ := scriptlibrary.GetPublishedScriptContentByScriptId(script.ScriptId) + scriptVersionId, _, content, _ := scriptlibrary.GetPublishedScriptContentByScriptId(script.ScriptId) dto.Scripts[i].WorkflowId = workflowId dto.Scripts[i].ScriptContent = content dto.Scripts[i].ScriptVersionId = scriptVersionId diff --git a/automation/server/internal/module/script_library/dao/script.go b/automation/server/internal/module/script_library/dao/script.go index 5a0ce61a..e53bf631 100644 --- a/automation/server/internal/module/script_library/dao/script.go +++ b/automation/server/internal/module/script_library/dao/script.go @@ -70,14 +70,18 @@ func GetScripts(query *response.PagedQuery, name, script_type, tag, usage_type s } // 组装 ScriptResponse for _, s := range scripts { + _, version, _, _ := GetPublishedScriptContentByScriptId(s.ID) sr := &model.ScriptResponse{ - ID: s.ID, - Name: s.Name, - ScriptType: s.ScriptType.String(), - UsageType: s.UsageType, - Description: s.Description, - ModifyUser: s.ModifyUser, - ModifyTime: s.ModifyTime, + ID: s.ID, + Name: s.Name, + ScriptType: s.ScriptType.String(), + UsageType: s.UsageType, + Description: s.Description, + RelatedTaskWorkflowNum: s.RelatedTaskWorkflowNum, + RelatedTaskOperationNum: s.RelatedTaskOperationNum, + VersionOnline: version, + ModifyUser: s.ModifyUser, + ModifyTime: s.ModifyTime, } var tag model.Tag 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 8cb35440..f53aae86 100644 --- a/automation/server/internal/module/script_library/dao/script_version.go +++ b/automation/server/internal/module/script_library/dao/script_version.go @@ -81,12 +81,12 @@ func GetLatestScriptVersion(scriptId string) (string, error) { return sv.Version, nil } -func GetPublishedScriptContentByScriptId(scriptId string) (int, string, error) { +func GetPublishedScriptContentByScriptId(scriptId string) (int, string, string, error) { var sv model.ScriptVersion if err := global.App.MySQL.Model(&model.ScriptVersion{}).Where("script_id = ? AND status = ?", scriptId, script.Published).Find(&sv).Error; err != nil { - return 0, "", err + return 0, "", "", err } - return sv.ID, sv.Content, nil + return sv.ID, sv.Version, sv.Content, nil } func GetPublishedScriptByScriptId(scriptId string) (string, string, string, error) { diff --git a/automation/server/internal/module/script_library/model/script.go b/automation/server/internal/module/script_library/model/script.go index a7c9b5da..349b306e 100644 --- a/automation/server/internal/module/script_library/model/script.go +++ b/automation/server/internal/module/script_library/model/script.go @@ -3,25 +3,31 @@ package model import "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/script" type Script struct { - ID string `json:"id" gorm:"primaryKey;not null;comment:脚本ID"` - Name string `json:"name" gorm:"type:varchar(255);not null;uniqueIndex:uniq_script_name;comment:脚本名称"` - ScriptType script.ScriptType `json:"script_type" gorm:"not null;comment:脚本类型"` - Description string `json:"description" gorm:"comment:脚本描述"` - Tag string `json:"tag" gorm:"comment:场景标签"` - UsageType string `json:"usage_type" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_name;comment:脚本业务类型"` - ModifyUser string `json:"modify_user" gorm:"not null;comment:最后修改者"` - ModifyTime string `json:"modify_time" gorm:"comment:最后修改时间"` + ID string `json:"id" gorm:"primaryKey;not null;comment:脚本ID"` + Name string `json:"name" gorm:"type:varchar(255);not null;uniqueIndex:uniq_script_name;comment:脚本名称"` + ScriptType script.ScriptType `json:"script_type" gorm:"not null;comment:脚本类型"` + Description string `json:"description" gorm:"comment:脚本描述"` + Tag string `json:"tag" gorm:"comment:场景标签"` + RelatedTaskWorkflowNum int `json:"relatedTaskWorkflowNum" gorm:"comment:被编排引用的次数"` + RelatedTaskOperationNum int `json:"relatedTaskOperationNum" gorm:"comment:被操作引用的次数"` + VersionOnline string `json:"version" gorm:"comment:线上版本"` + UsageType string `json:"usage_type" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_name;comment:脚本业务类型"` + ModifyUser string `json:"modify_user" gorm:"not null;comment:最后修改者"` + ModifyTime string `json:"modify_time" gorm:"comment:最后修改时间"` } type ScriptResponse struct { - ID string `json:"id"` - Name string `json:"name"` - ScriptType string `json:"script_type"` - UsageType string `json:"usage_type"` - Description string `json:"description"` - Tag Tag `json:"tag"` - ModifyUser string `json:"modify_user"` - ModifyTime string `json:"modify_time"` + ID string `json:"id"` + Name string `json:"name"` + ScriptType string `json:"script_type"` + UsageType string `json:"usage_type"` + Description string `json:"description"` + Tag Tag `json:"tag"` + RelatedTaskWorkflowNum int `json:"relatedTaskWorkflowNum"` + RelatedTaskOperationNum int `json:"relatedTaskOperationNum"` + VersionOnline string `json:"version"` + ModifyUser string `json:"modify_user"` + ModifyTime string `json:"modify_time"` } type AddScriptDTO struct { -- Gitee