github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testworkflows/executions.go (about) 1 package testworkflows 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/spf13/cobra" 8 9 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" 10 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common/render" 11 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testworkflows/renderer" 12 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 13 "github.com/kubeshop/testkube/pkg/ui" 14 ) 15 16 func NewGetTestWorkflowExecutionsCmd() *cobra.Command { 17 var ( 18 limit int 19 selectors []string 20 testWorkflowName string 21 ) 22 23 cmd := &cobra.Command{ 24 Use: "testworkflowexecution [executionID]", 25 Aliases: []string{"testworkflowexecutions", "twe", "tw-execution", "twexecution"}, 26 Args: cobra.MaximumNArgs(1), 27 Short: "Gets TestWorkflow execution details", 28 Long: `Gets TestWorkflow execution details by ID, or list if id is not passed`, 29 30 Run: func(cmd *cobra.Command, args []string) { 31 client, _, err := common.GetClient(cmd) 32 ui.ExitOnError("getting client", err) 33 34 if len(args) == 0 { 35 client, _, err := common.GetClient(cmd) 36 ui.ExitOnError("getting client", err) 37 38 executions, err := client.ListTestWorkflowExecutions(testWorkflowName, limit, strings.Join(selectors, ",")) 39 ui.ExitOnError("getting test workflow executions list", err) 40 err = render.List(cmd, testkube.TestWorkflowExecutionSummaries(executions.Results), os.Stdout) 41 ui.ExitOnError("rendering list", err) 42 return 43 } 44 45 executionID := args[0] 46 execution, err := client.GetTestWorkflowExecution(executionID) 47 ui.ExitOnError("getting recent test workflow execution data id:"+execution.Id, err) 48 err = render.Obj(cmd, execution, os.Stdout, renderer.TestWorkflowExecutionRenderer) 49 ui.ExitOnError("rendering obj", err) 50 }, 51 } 52 53 cmd.Flags().StringVarP(&testWorkflowName, "testworkflow", "w", "", "test workflow name") 54 cmd.Flags().IntVar(&limit, "limit", 1000, "max number of records to return") 55 cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1") 56 57 return cmd 58 }