diff --git a/litmus-portal/graphql-server/go.sum b/litmus-portal/graphql-server/go.sum index 9e9da14d1..6833a0be5 100644 --- a/litmus-portal/graphql-server/go.sum +++ b/litmus-portal/graphql-server/go.sum @@ -189,7 +189,9 @@ github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/prometheus-operator v0.34.0/go.mod h1:Li6rMllG/hYIyXfMuvUwhyC+hqwJVHdsDdP21hypT1M= github.com/coreos/rkt v1.30.0/go.mod h1:O634mlH6U7qk87poQifK6M2rsFNt+FyUTWNMnP1hF1U= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -882,7 +884,9 @@ github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rubenv/sql-migrate v0.0.0-20191025130928-9355dd04f4b3/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= @@ -896,6 +900,7 @@ github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/vfsgen v0.0.0-20180121065927-ffb13db8def0/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -963,7 +968,9 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.1.1 h1:Qt8FeAtxE/vfdrLmR3rxR6JRE0RoVmbXu8+6kZtYU4k= github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1089,6 +1096,7 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1286,6 +1294,7 @@ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200428211428-0c9eba77bc32 h1:Xvf3ZQTm5bjXPxhI7g+dwqsCqadK1rcNtwtszuatetk= golang.org/x/tools v0.0.0-20200428211428-0c9eba77bc32/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/litmus-portal/graphql-server/graph/generated/generated.go b/litmus-portal/graphql-server/graph/generated/generated.go index 8a68ec561..80c2dbbec 100644 --- a/litmus-portal/graphql-server/graph/generated/generated.go +++ b/litmus-portal/graphql-server/graph/generated/generated.go @@ -4621,7 +4621,6 @@ input WorkflowRunFilterInput { cluster_name: String workflow_status: WorkflowRunStatus date_range: DateRange - isRemoved: Boolean } input Pagination { @@ -22047,12 +22046,6 @@ func (ec *executionContext) unmarshalInputWorkflowRunFilterInput(ctx context.Con if err != nil { return it, err } - case "isRemoved": - var err error - it.IsRemoved, err = ec.unmarshalOBoolean2ᚖbool(ctx, v) - if err != nil { - return it, err - } } } diff --git a/litmus-portal/graphql-server/graph/model/models_gen.go b/litmus-portal/graphql-server/graph/model/models_gen.go index 5a67890b8..7f2c5b847 100644 --- a/litmus-portal/graphql-server/graph/model/models_gen.go +++ b/litmus-portal/graphql-server/graph/model/models_gen.go @@ -548,7 +548,6 @@ type WorkflowRunFilterInput struct { ClusterName *string `json:"cluster_name"` WorkflowStatus *WorkflowRunStatus `json:"workflow_status"` DateRange *DateRange `json:"date_range"` - IsRemoved *bool `json:"isRemoved"` } type WorkflowRunInput struct { diff --git a/litmus-portal/graphql-server/graph/workflow.graphqls b/litmus-portal/graphql-server/graph/workflow.graphqls index 9abb3fbbb..6854e9566 100644 --- a/litmus-portal/graphql-server/graph/workflow.graphqls +++ b/litmus-portal/graphql-server/graph/workflow.graphqls @@ -15,7 +15,6 @@ input WorkflowRunFilterInput { cluster_name: String workflow_status: WorkflowRunStatus date_range: DateRange - isRemoved: Boolean } input Pagination { diff --git a/litmus-portal/graphql-server/pkg/chaos-workflow/handler/handler.go b/litmus-portal/graphql-server/pkg/chaos-workflow/handler/handler.go index b153a1ef6..cb74c6f76 100644 --- a/litmus-portal/graphql-server/pkg/chaos-workflow/handler/handler.go +++ b/litmus-portal/graphql-server/pkg/chaos-workflow/handler/handler.go @@ -168,6 +168,22 @@ func QueryWorkflowRuns(input model.GetWorkflowRunsInput) (*model.GetWorkflowsOut {"isRemoved", 1}, } + // Filter the available workflows where isRemoved is false + matchWfRemovedStage := bson.D{ + {"$project", append(includeAllFromWorkflow, + bson.E{Key: "workflow_runs", Value: bson.D{ + {"$filter", bson.D{ + {"input", "$workflow_runs"}, + {"as", "wfRun"}, + {"cond", bson.D{ + {"$eq", bson.A{"$$wfRun.isRemoved", false}}, + }}, + }}, + }}, + )}, + } + pipeline = append(pipeline, matchWfRemovedStage) + // Match the pipelineIds from the input array if len(input.WorkflowRunIds) != 0 { matchWfRunIdStage := bson.D{ @@ -256,25 +272,6 @@ func QueryWorkflowRuns(input model.GetWorkflowRunsInput) (*model.GetWorkflowsOut pipeline = append(pipeline, filterWfRunDateStage) } - - // Filtering based on isRemoved - if input.Filter.IsRemoved != nil { - filterWfRunIsRemoved := bson.D{ - {"$project", append(includeAllFromWorkflow, - bson.E{Key: "workflow_runs", Value: bson.D{ - {"$filter", bson.D{ - {"input", "$workflow_runs"}, - {"as", "wfRun"}, - {"cond", bson.D{ - {"$eq", bson.A{"$$wfRun.isRemoved", *input.Filter.IsRemoved}}, - }}, - }}, - }}, - )}, - } - - pipeline = append(pipeline, filterWfRunIsRemoved) - } } // Flatten out the workflow runs @@ -518,6 +515,7 @@ func WorkFlowRunHandler(input model.WorkflowRunInput, r store.StateData) (string } count := 0 + isRemoved := false count, err = dbOperationsWorkflow.UpdateWorkflowRun(input.WorkflowID, dbSchemaWorkflow.ChaosWorkflowRun{ WorkflowRunID: input.WorkflowRunID, LastUpdated: strconv.FormatInt(time.Now().Unix(), 10), @@ -527,7 +525,7 @@ func WorkFlowRunHandler(input model.WorkflowRunInput, r store.StateData) (string TotalExperiments: &executionData.TotalExperiments, ExecutionData: input.ExecutionData, Completed: input.Completed, - IsRemoved: input.IsRemoved, + IsRemoved: &isRemoved, }) if err != nil { @@ -552,7 +550,7 @@ func WorkFlowRunHandler(input model.WorkflowRunInput, r store.StateData) (string TotalExperiments: &executionData.TotalExperiments, ExecutionData: input.ExecutionData, WorkflowID: input.WorkflowID, - IsRemoved: input.IsRemoved, + IsRemoved: &isRemoved, }, &r) return "Workflow Run Accepted", nil diff --git a/litmus-portal/graphql-server/pkg/database/mongodb/workflow/operations.go b/litmus-portal/graphql-server/pkg/database/mongodb/workflow/operations.go index 6be28530a..aade2ae15 100644 --- a/litmus-portal/graphql-server/pkg/database/mongodb/workflow/operations.go +++ b/litmus-portal/graphql-server/pkg/database/mongodb/workflow/operations.go @@ -60,6 +60,7 @@ func UpdateWorkflowRun(workflowID string, wfRun ChaosWorkflowRun) (int, error) { {"workflow_runs.$.total_experiments", wfRun.TotalExperiments}, {"workflow_runs.$.execution_data", wfRun.ExecutionData}, {"workflow_runs.$.completed", wfRun.Completed}, + {"workflow_runs.$.isRemoved", wfRun.IsRemoved}, }}} result, err := mongodb.Operator.Update(ctx, mongodb.WorkflowCollection, query, update)