diff --git a/automation/server/internal/module/common/enum/enum.go b/automation/server/internal/module/common/enum/common/enum.go similarity index 98% rename from automation/server/internal/module/common/enum/enum.go rename to automation/server/internal/module/common/enum/common/enum.go index e3e24703e00b31d6594832b953a40aad42280242..149a1aec65eff85549b6cb4ae3a1617e14b4d975 100644 --- a/automation/server/internal/module/common/enum/enum.go +++ b/automation/server/internal/module/common/enum/common/enum.go @@ -1,4 +1,4 @@ -package enum +package common import ( "database/sql/driver" diff --git a/automation/server/internal/module/dangerous_rule/controller/enum_dropdown.go b/automation/server/internal/module/common/enum/router.go similarity index 30% rename from automation/server/internal/module/dangerous_rule/controller/enum_dropdown.go rename to automation/server/internal/module/common/enum/router.go index a324f5a566906925ec40ad32ff568f6565aff523..6c03c3000c875a80aea808dd832303987f29bcd3 100644 --- a/automation/server/internal/module/dangerous_rule/controller/enum_dropdown.go +++ b/automation/server/internal/module/common/enum/router.go @@ -1,18 +1,19 @@ -package controller +package enum import ( "github.com/gin-gonic/gin" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/rule" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/script" - "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/workflow" ) -func ScriptTypeListHandler(c *gin.Context) { - scriptTypes := script.GetScriptType() - response.Success(c, scriptTypes, "success") -} - -func ActionListHandler(c *gin.Context) { - actions := rule.GetActions() - response.Success(c, actions, "success") +func EnumHandler(router *gin.RouterGroup) { + api := router.Group("/enum") + { + api.GET("/ruleAction", rule.RuleActionListHandler) + api.GET("/scriptType", script.ScriptTypeListHandler) + api.GET("/scriptStatus", script.ScriptPublishStatusListHandler) + api.GET("/workflowStatus", workflow.WorkflowPublishStatusListHandler) + api.GET("/workflowStepType", workflow.StepTypeListHandler) + } } diff --git a/automation/server/internal/module/common/enum/rule/rule.go b/automation/server/internal/module/common/enum/rule/action.go similarity index 79% rename from automation/server/internal/module/common/enum/rule/rule.go rename to automation/server/internal/module/common/enum/rule/action.go index 882689b2c36631440988283699ea81b33cc33c92..3e1a0cba0d182fc382946fda01e7ada3472d51d1 100644 --- a/automation/server/internal/module/common/enum/rule/rule.go +++ b/automation/server/internal/module/common/enum/rule/action.go @@ -5,7 +5,9 @@ import ( "encoding/json" "fmt" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" + "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/common" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) type ActionType int @@ -15,7 +17,7 @@ const ( Warning ActionType = 2 ) -var ActionMap = enum.EnumMap{ +var ActionMap = common.EnumMap{ int(Block): "拦截", int(Warning): "警告", } @@ -67,6 +69,11 @@ func (p *ActionType) Scan(value interface{}) error { return nil } -func GetActions() []enum.Item { +func getRuleActions() []common.Item { return ActionMap.ToItems() } + +func RuleActionListHandler(c *gin.Context) { + actions := getRuleActions() + response.Success(c, actions, "success") +} diff --git a/automation/server/internal/module/common/enum/script/status.go b/automation/server/internal/module/common/enum/script/status.go index 13b6f534bed6f09bd2475e2e5be75bde914c61bd..a18c20fb462624e2101822146e8e6dd64e65bda9 100644 --- a/automation/server/internal/module/common/enum/script/status.go +++ b/automation/server/internal/module/common/enum/script/status.go @@ -5,77 +5,84 @@ import ( "encoding/json" "fmt" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" + "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/common" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) -type ScriptVersionStatus int +type ScriptPublishStatus int const ( - Develop ScriptVersionStatus = 1 - Published ScriptVersionStatus = 2 + Develop ScriptPublishStatus = 1 + Published ScriptPublishStatus = 2 ) -var ScriptVersionStatusMap = enum.EnumMap{ +var ScriptPublishStatusMap = common.EnumMap{ int(Develop): "开发中", int(Published): "已发布", } -func (p ScriptVersionStatus) String() string { - return ScriptVersionStatusMap.String(int(p)) +func (p ScriptPublishStatus) String() string { + return ScriptPublishStatusMap.String(int(p)) } -func ParseScriptVersionStatus(s string) ScriptVersionStatus { - for k, v := range ScriptVersionStatusMap { +func ParseScriptPublishStatus(s string) ScriptPublishStatus { + for k, v := range ScriptPublishStatusMap { if v == s { - return ScriptVersionStatus(k) + return ScriptPublishStatus(k) } } return 0 } -func (p ScriptVersionStatus) MarshalJSON() ([]byte, error) { - return json.Marshal(ScriptVersionStatusMap[int(p)]) +func (p ScriptPublishStatus) MarshalJSON() ([]byte, error) { + return json.Marshal(ScriptPublishStatusMap[int(p)]) } -func (p *ScriptVersionStatus) UnmarshalJSON(data []byte) error { +func (p *ScriptPublishStatus) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err == nil { - for k, v := range ScriptVersionStatusMap { + for k, v := range ScriptPublishStatusMap { if v == s { - *p = ScriptVersionStatus(k) + *p = ScriptPublishStatus(k) return nil } } - return fmt.Errorf("invalid ScriptVersionStatus: '%s', allowed: %v", s, ScriptVersionStatusMap) + return fmt.Errorf("invalid ScriptPublishStatus: '%s', allowed: %v", s, ScriptPublishStatusMap) } var num int if err := json.Unmarshal(data, &num); err == nil { - if _, exists := ScriptVersionStatusMap[num]; exists { - *p = ScriptVersionStatus(num) + if _, exists := ScriptPublishStatusMap[num]; exists { + *p = ScriptPublishStatus(num) return nil } - return fmt.Errorf("invalid ScriptVersionStatus: %d, allowed: %v", num, ScriptVersionStatusMap) + return fmt.Errorf("invalid ScriptPublishStatus: %d, allowed: %v", num, ScriptPublishStatusMap) } - return fmt.Errorf("invalid ScriptVersionStatus, must be string or number") + return fmt.Errorf("invalid ScriptPublishStatus, must be string or number") } -func (p ScriptVersionStatus) Value() (driver.Value, error) { +func (p ScriptPublishStatus) Value() (driver.Value, error) { return int64(p), nil } -func (p *ScriptVersionStatus) Scan(value interface{}) error { +func (p *ScriptPublishStatus) Scan(value interface{}) error { if value == nil { *p = 0 return nil } if v, ok := value.(int64); ok { - *p = ScriptVersionStatus(int(v)) + *p = ScriptPublishStatus(int(v)) return nil } return nil } -func GetScriptVersionStatus() []enum.Item { - return ScriptVersionStatusMap.ToItems() +func getScriptPublishStatus() []common.Item { + return ScriptPublishStatusMap.ToItems() +} + +func ScriptPublishStatusListHandler(c *gin.Context) { + status := getScriptPublishStatus() + response.Success(c, status, "success") } diff --git a/automation/server/internal/module/common/enum/script/script.go b/automation/server/internal/module/common/enum/script/type.go similarity index 80% rename from automation/server/internal/module/common/enum/script/script.go rename to automation/server/internal/module/common/enum/script/type.go index ec3f087b18bb2eebf5f7b6334979a72604a0f79d..9caac61c961eb2c9411d0b4d7c34796d6f511bb8 100644 --- a/automation/server/internal/module/common/enum/script/script.go +++ b/automation/server/internal/module/common/enum/script/type.go @@ -5,7 +5,9 @@ import ( "encoding/json" "fmt" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" + "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/common" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) type ScriptType int @@ -17,7 +19,7 @@ const ( SQL ScriptType = 4 ) -var ScriptTypeMap = enum.EnumMap{ +var ScriptTypeMap = common.EnumMap{ int(Shell): "Shell", int(Perl): "Perl", int(Python): "Python", @@ -71,6 +73,11 @@ func (p *ScriptType) Scan(value interface{}) error { return nil } -func GetScriptType() []enum.Item { +func getScriptType() []common.Item { return ScriptTypeMap.ToItems() } + +func ScriptTypeListHandler(c *gin.Context) { + scriptTypes := getScriptType() + response.Success(c, scriptTypes, "success") +} diff --git a/automation/server/internal/module/common/enum/workflow/publish.go b/automation/server/internal/module/common/enum/workflow/status.go similarity index 77% rename from automation/server/internal/module/common/enum/workflow/publish.go rename to automation/server/internal/module/common/enum/workflow/status.go index ca3d0b2d0f83b0a97336da1eea40e5aa2550c8fa..6bda16dd2043e0285aab353d8483bb897be1bbdb 100644 --- a/automation/server/internal/module/common/enum/workflow/publish.go +++ b/automation/server/internal/module/common/enum/workflow/status.go @@ -5,7 +5,9 @@ import ( "encoding/json" "fmt" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" + "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/common" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) type PublishStatus int @@ -15,7 +17,7 @@ const ( Published PublishStatus = 2 ) -var PublishStatusMap = enum.EnumMap{ +var PublishStatusMap = common.EnumMap{ int(Develop): "开发中", int(Published): "已发布", } @@ -65,3 +67,12 @@ func (p *PublishStatus) Scan(value interface{}) error { } return nil } + +func getPublishStatus() []common.Item { + return PublishStatusMap.ToItems() +} + +func WorkflowPublishStatusListHandler(c *gin.Context) { + status := getPublishStatus() + response.Success(c, status, "success") +} diff --git a/automation/server/internal/module/common/enum/workflow/step.go b/automation/server/internal/module/common/enum/workflow/step_type.go similarity index 78% rename from automation/server/internal/module/common/enum/workflow/step.go rename to automation/server/internal/module/common/enum/workflow/step_type.go index b0d52f1aec5e58921482e20554b2617ee306d3c1..d5abd07c7a329f1dc6aa316193b4e7b2db38c1de 100644 --- a/automation/server/internal/module/common/enum/workflow/step.go +++ b/automation/server/internal/module/common/enum/workflow/step_type.go @@ -5,7 +5,9 @@ import ( "encoding/json" "fmt" - "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" + "github.com/gin-gonic/gin" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum/common" + "openeuler.org/PilotGo/PilotGo-plugin-automation/pkg/response" ) type StepType int @@ -16,7 +18,7 @@ const ( ProcessControl StepType = 3 ) -var StepTypeMap = enum.EnumMap{ +var StepTypeMap = common.EnumMap{ int(ExecTask): "任务", int(ManualReview): "人工处理", int(ProcessControl): "流程控制", @@ -67,3 +69,12 @@ func (p *StepType) Scan(value interface{}) error { } return nil } + +func getStepType() []common.Item { + return StepTypeMap.ToItems() +} + +func StepTypeListHandler(c *gin.Context) { + stepTypes := getStepType() + response.Success(c, stepTypes, "success") +} diff --git a/automation/server/internal/module/dangerous_rule/router.go b/automation/server/internal/module/dangerous_rule/router.go index 392d7c4a4c95c0c106fb92b1255f0798fdafe5b8..d7090bf9cd60e0abdac0dab66b1380812512cee4 100644 --- a/automation/server/internal/module/dangerous_rule/router.go +++ b/automation/server/internal/module/dangerous_rule/router.go @@ -16,9 +16,4 @@ func DangerousRuleHandler(router *gin.RouterGroup) { api.POST("/detectRule", controller.DetectRealtimelyHandler) } - enumApi := router.Group("/enum") - { - enumApi.GET("/scriptType", controller.ScriptTypeListHandler) - enumApi.GET("/action", controller.ActionListHandler) - } } 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 c9fdb82a72655b6bda4d5ec393211c2b990c0467..7a8e600b0e58761a4d7870dfcb94f4363408a5c0 100644 --- a/automation/server/internal/module/script_library/model/script_version.go +++ b/automation/server/internal/module/script_library/model/script_version.go @@ -21,7 +21,7 @@ type ScriptVersion struct { Content string `json:"content" gorm:"type:text;not null;comment:脚本内容"` Version string `json:"version" gorm:"type:varchar(50);not null;uniqueIndex:uniq_script_version;comment:脚本版本号"` VersionDesc string `json:"version_desc" gorm:"type:varchar(500);uniqueIndex:uniq_script_version;comment:脚本版本描述"` - Status script.ScriptVersionStatus `json:"status" gorm:"default:1;comment:脚本版本状态"` + Status script.ScriptPublishStatus `json:"status" gorm:"default:1;comment:脚本版本状态"` ModifyUser string `json:"modify_user" gorm:"type:varchar(100);not null;comment:最后修改者"` ModifyTime string `json:"modify_time" gorm:"comment:最后修改时间"` } diff --git a/automation/server/internal/router/router.go b/automation/server/internal/router/router.go index 1e2437a0c913c24dae7983b2cee95557d893e79f..8a41871dd71947c95eeb710d9ee354b656b744aa 100644 --- a/automation/server/internal/router/router.go +++ b/automation/server/internal/router/router.go @@ -7,6 +7,7 @@ import ( "gitee.com/openeuler/PilotGo/sdk/logger" "github.com/gin-gonic/gin" "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/global" + "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/common/enum" dangerousrule "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/dangerous_rule" jobworkflow "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/job_workflow" scriptlibrary "openeuler.org/PilotGo/PilotGo-plugin-automation/internal/module/script_library" @@ -34,6 +35,7 @@ func initRouters() *gin.Engine { scriptlibrary.ScriptLibraryHandler(api) dangerousrule.DangerousRuleHandler(api) jobworkflow.WorkflowHandler(api) + enum.EnumHandler(api) return Router }