From 0bded007a62259ef99b0492fcaaade6e2c2ee91e 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 + .../workflow/service/workflow/workflow_task_v4.go | 14 ++++++++++++++ 2 files changed, 15 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..3af1af0f42 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"` + Disable bool `bson:"disable" yaml:"disable" json:"disable"` 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_task_v4.go b/pkg/microservice/aslan/core/workflow/service/workflow/workflow_task_v4.go index f3a22d28da..cedc07b882 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.Disable { + return resp, e.ErrCreateTask.AddDesc("workflow is disabled") + } + } else { + if workflow.Disable { + return resp, e.ErrCreateTask.AddDesc("workflow is disabled") + } + } + // if account is not set, use name as account if args.Account == "" { args.Account = args.Name