diff --git a/automation/server/internal/module/job_workflow/dao/template.go b/automation/server/internal/module/job_workflow/dao/template.go new file mode 100644 index 0000000000000000000000000000000000000000..af1762cbc88b54367ab8decd8f872d454e6ac164 --- /dev/null +++ b/automation/server/internal/module/job_workflow/dao/template.go @@ -0,0 +1,34 @@ +package dao + +import ( + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/job_workflow/model" +) + +func GetTemplateByID(id int) (*model.TaskTemplate, error) { + var template model.TaskTemplate + if err := global.App.MySQL.First(&template, id).Error; err != nil { + return nil, err + } + return &template, nil +} + +func GetAllTemplates() ([]*model.TaskTemplate, error) { + var templates []*model.TaskTemplate + if err := global.App.MySQL.Find(&templates).Error; err != nil { + return nil, err + } + return templates, nil +} + +func CreateTemplate(t *model.TaskTemplate) error { + return global.App.MySQL.Create(t).Error +} + +func UpdateTemplate(id int, t *model.TaskTemplate) error { + return global.App.MySQL.Model(&model.TaskTemplate{}).Where("id = ?", id).Updates(t).Error +} + +func DeleteTemplate(id int) error { + return global.App.MySQL.Delete(&model.TaskTemplate{}, id).Error +} diff --git a/automation/server/internal/module/job_workflow/model/template.go b/automation/server/internal/module/job_workflow/model/template.go new file mode 100644 index 0000000000000000000000000000000000000000..f299d8d02e2cbdd7d53143d746e99a45f4fc98d7 --- /dev/null +++ b/automation/server/internal/module/job_workflow/model/template.go @@ -0,0 +1,52 @@ +package model + +type TaskTemplate struct { + ID int `json:"id" gorm:"primaryKey;autoIncrement;comment:作业编排Id"` + Name string `json:"name" gorm:"type:varchar(255);comment:作业编排名称"` + Description string `json:"description" gorm:"type:varchar(255);comment:作业描述"` + Tags string `json:"tags" gorm:"comment:场景标签"` + FirstStepId int `json:"first_step_id"` + LastStepId int `json:"last_step_id"` + Creator string `json:"creator" gorm:"comment:创建人"` + CreatedAt string `json:"created_at" gorm:"comment:创建时间"` + LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` + LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:'最后修改时间'"` +} + +type TaskTemplateVariable struct { + ID int `json:"id" gorm:"primaryKey;autoIncrement"` + TemplateId int `json:"template_id" gorm:"comment:作业编排Id"` + Name string `json:"name" gorm:"type:varchar(255);comment:变量名称"` + Type string `json:"type" gorm:"comment:变量类型(字符串、命名空间、数组等)"` + DefaultVaue string `json:"default_value" gorm:"comment:变量默认值"` + Description string `json:"description" gorm:"comment:变量描述"` + IsChangeable bool `json:"is_changeable" gorm:"comment:赋值可变"` + IsRequired string `json:"is_required" gorm:"comment:是否必需"` + Creator string `json:"creator" gorm:"comment:创建人"` + CreatedAt string `json:"created_at" gorm:"comment:创建时间"` + LastModifyUser string `json:"last_modify_user" gorm:"type:varchar(100);not null;comment:'最后修改者'"` + LastModifyUpdatedAt string `json:"last_modify_updated_at" gorm:"comment:'最后修改时间'"` +} + +type TaskTemplateStep struct { + ID int `json:"id" gorm:"primaryKey;autoIncrement"` + TemplateId int `json:"template_id" gorm:"comment:作业编排Id"` + StepType string `json:"step_type" gorm:"comment:编排步骤类型(开始、脚本、人工干预、结束等)"` + Name string `json:"name" gorm:"comment:步骤名称"` + StepId int `json:"step_id" gorm:"comment:作业编排步骤Id"` + PreviousStepId int `json:"previous_step_id" gorm:"comment:作业编排上一步骤Id"` + NextStepId int `json:"next_step_id" gorm:"comment:作业编排下一步骤Id"` +} + +type TaskTemplateStepScript struct { + ID int `json:"id" gorm:"primaryKey;autoIncrement"` + TemplateId int `json:"template_id" gorm:"comment:作业编排Id"` + StepId int `json:"step_id" gorm:"comment:作业编排步骤Id"` + ScriptType string `json:"script_type" gorm:"comment:脚本类型"` + ScriptId string `json:"script_id" gorm:"comment:引用脚本Id"` + ScriptVersionId string `json:"script_version_id" gorm:"comment:引用脚本版本Id"` + ScriptContent string `json:"script_content" gorm:"comment:脚本内容"` + ScriptParam string `json:"script_param" gorm:"comment:脚本执行参数"` + ScriptTimeout string `json:"script_timeout" gorm:"comment:脚本超时"` + DestinationHostList string `json:"destination_host_list" gorm:"comment:远程执行主机列表"` +} diff --git a/automation/server/internal/module/script_library/dao/script.go b/automation/server/internal/module/script_library/dao/script.go index 773a4ead2139471ef5e1ff9c93d2f7b286ed2ac3..48edb7b3a620d90f046327bb6de3ef1a1fa507ce 100644 --- a/automation/server/internal/module/script_library/dao/script.go +++ b/automation/server/internal/module/script_library/dao/script.go @@ -37,6 +37,7 @@ func GetScripts(query *response.PaginationQ) ([]*model.ScriptResponse, int, erro sr := &model.ScriptResponse{ ID: s.ID, Name: s.Name, + ScriptName: s.ScriptName, ScriptType: s.ScriptType, Description: s.Description, IsPublic: s.IsPublic, 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 b7c9d8b1a141a89406e1b20c37e05cbdf68ab947..7fa244a50e75df86bcf81714372c1c31be2adeaa 100644 --- a/automation/server/internal/module/script_library/dao/script_version.go +++ b/automation/server/internal/module/script_library/dao/script_version.go @@ -14,6 +14,7 @@ func GetScriptVersions(scriptId string) (*model.ScriptVersionResponse, error) { SELECT s.id AS script_id, s.name AS name, + s.script_name AS script_name, s.script_type AS script_type, s.description AS description, s.is_public AS is_public, @@ -76,6 +77,7 @@ WHERE s.id = ? resp := &model.ScriptVersionResponse{ ID: row.ScriptID, Name: row.Name, + ScriptName: row.ScriptName, ScriptType: row.ScriptType, Description: row.Description, IsPublic: row.IsPublic, diff --git a/automation/server/internal/module/script_library/model/script.go b/automation/server/internal/module/script_library/model/script.go index 2185dc312b322a066f9c85fb13d7d19e7c15891c..c9a9697731c61c83de982906d16d8a3a81a56b40 100644 --- a/automation/server/internal/module/script_library/model/script.go +++ b/automation/server/internal/module/script_library/model/script.go @@ -18,6 +18,7 @@ type Script struct { type ScriptWithVersion struct { Name string `json:"name"` + ScriptName string `json:"script_name"` ScriptType string `json:"script_type"` Description string `json:"description"` Tags string `json:"tags"` @@ -33,6 +34,7 @@ type ScriptWithVersion struct { type ScriptResponse struct { ID string `json:"id"` Name string `json:"name"` + ScriptName string `json:"script_name"` ScriptType string `json:"script_type"` Description string `json:"description"` Tags []Tag `json:"tags"` diff --git a/automation/server/internal/module/script_library/model/script_version.go b/automation/server/internal/module/script_library/model/script_version.go index e758285c64073e2e1c7b6fbf81a38d697211df9c..ae6f0f9cc7dc9ca59425a47b3bbf739d79a6ef49 100644 --- a/automation/server/internal/module/script_library/model/script_version.go +++ b/automation/server/internal/module/script_library/model/script_version.go @@ -29,6 +29,7 @@ type ScriptVersion struct { type ScriptVersionResponse struct { ID string `json:"id"` Name string `json:"name"` + ScriptName string `json:"script_name"` ScriptType string `json:"script_type"` Description string `json:"description"` Tags []Tag `json:"tags"` @@ -40,6 +41,7 @@ type RawScriptVersion struct { // Script 字段 ScriptID string `json:"script_id"` Name string `json:"name"` + ScriptName string `json:"script_name"` ScriptType string `json:"script_type"` Description string `json:"description"` IsPublic bool `json:"is_public"` diff --git a/automation/server/internal/module/script_library/service/script.go b/automation/server/internal/module/script_library/service/script.go index 0783eb5b88142b16ab40d992a84811c6230a7c3c..f02f1737d673b6d085d1b980cb31622900b95cba 100644 --- a/automation/server/internal/module/script_library/service/script.go +++ b/automation/server/internal/module/script_library/service/script.go @@ -24,6 +24,7 @@ func AddScript(s *model.ScriptWithVersion) error { script := &model.Script{ ID: scriptId, Name: s.Name, + ScriptName: s.ScriptName, ScriptType: s.ScriptType, Description: s.Description, Tags: s.Tags, @@ -56,7 +57,6 @@ func GetScripts(query *response.PaginationQ) ([]*model.ScriptResponse, int, erro func UpdateScript(s *model.Script) error { script := &model.Script{ - Name: s.Name, Description: s.Description, Tags: s.Tags, LastModifyUser: s.LastModifyUser,