From 762bab7791bd5ce04d7831162b7378e72b09435b Mon Sep 17 00:00:00 2001 From: Patrick Zhao Date: Thu, 27 Jun 2024 13:09:57 +0800 Subject: [PATCH] add disable workflow feature Signed-off-by: Patrick Zhao --- .../core/common/repository/models/workflow_v4.go | 1 + .../core/workflow/service/workflow/workflow.go | 1 + .../workflow/service/workflow/workflow_task_v4.go | 14 ++++++++++++++ .../core/workflow/service/workflow/workflow_v4.go | 1 + 4 files changed, 17 insertions(+) diff --git a/pkg/microservice/aslan/core/common/repository/models/workflow_v4.go b/pkg/microservice/aslan/core/common/repository/models/workflow_v4.go index 68f2897518..3c746d6990 100644 --- a/pkg/microservice/aslan/core/common/repository/models/workflow_v4.go +++ b/pkg/microservice/aslan/core/common/repository/models/workflow_v4.go @@ -42,6 +42,7 @@ type WorkflowV4 struct { ID primitive.ObjectID `bson:"_id,omitempty" yaml:"-" json:"id"` Name string `bson:"name" yaml:"name" json:"name"` DisplayName string `bson:"display_name" yaml:"display_name" json:"display_name"` + Disabled bool `bson:"disabled" yaml:"disabled" json:"disabled"` Category setting.WorkflowCategory `bson:"category" yaml:"category" json:"category"` KeyVals []*KeyVal `bson:"key_vals" yaml:"key_vals" json:"key_vals"` Params []*Param `bson:"params" yaml:"params" json:"params"` diff --git a/pkg/microservice/aslan/core/workflow/service/workflow/workflow.go b/pkg/microservice/aslan/core/workflow/service/workflow/workflow.go index 1c7cfd1baa..1408e42a64 100644 --- a/pkg/microservice/aslan/core/workflow/service/workflow/workflow.go +++ b/pkg/microservice/aslan/core/workflow/service/workflow/workflow.go @@ -51,6 +51,7 @@ type Workflow struct { Name string `json:"name"` DisplayName string `json:"display_name"` ProjectName string `json:"projectName"` + Disabled bool `json:"disabled"` UpdateTime int64 `json:"updateTime"` CreateTime int64 `json:"createTime"` UpdateBy string `json:"updateBy,omitempty"` diff --git a/pkg/microservice/aslan/core/workflow/service/workflow/workflow_task_v4.go b/pkg/microservice/aslan/core/workflow/service/workflow/workflow_task_v4.go index f3a22d28da..3737c4aa3b 100644 --- a/pkg/microservice/aslan/core/workflow/service/workflow/workflow_task_v4.go +++ b/pkg/microservice/aslan/core/workflow/service/workflow/workflow_task_v4.go @@ -380,6 +380,20 @@ func CreateWorkflowTaskV4(args *CreateWorkflowTaskV4Args, workflow *commonmodels return resp, err } + if args.Type == config.WorkflowTaskTypeWorkflow || args.Type == "" { + orignalWorkflow, err := commonrepo.NewWorkflowV4Coll().Find(workflow.Name) + if err != nil { + return resp, e.ErrCreateTask.AddErr(fmt.Errorf("cannot find workflow %s, error: %v", workflow.Name, err)) + } + if orignalWorkflow.Disabled { + return resp, e.ErrCreateTask.AddDesc("workflow is disabled") + } + } else { + if workflow.Disabled { + return resp, e.ErrCreateTask.AddDesc("workflow is disabled") + } + } + // if account is not set, use name as account if args.Account == "" { args.Account = args.Name diff --git a/pkg/microservice/aslan/core/workflow/service/workflow/workflow_v4.go b/pkg/microservice/aslan/core/workflow/service/workflow/workflow_v4.go index 37ece360d2..ecd3819a05 100644 --- a/pkg/microservice/aslan/core/workflow/service/workflow/workflow_v4.go +++ b/pkg/microservice/aslan/core/workflow/service/workflow/workflow_v4.go @@ -450,6 +450,7 @@ func ListWorkflowV4(projectName, viewName, userID string, names, v4Names []strin Name: workflowModel.Name, DisplayName: workflowModel.DisplayName, ProjectName: workflowModel.Project, + Disabled: workflowModel.Disabled, EnabledStages: stages, CreateTime: workflowModel.CreateTime, UpdateTime: workflowModel.UpdateTime,