github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testsuites/executions.go (about) 1 package testsuites 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/testsuites/renderer" 12 "github.com/kubeshop/testkube/pkg/ui" 13 ) 14 15 func NewTestSuiteExecutionCmd() *cobra.Command { 16 var ( 17 limit int 18 selectors []string 19 testSuiteName string 20 ) 21 22 cmd := &cobra.Command{ 23 Use: "testsuiteexecution [executionID]", 24 Aliases: []string{"testsuiteexecutions", "tse", "ts-execution", "tsexecution"}, 25 Short: "Gets TestSuite Execution details", 26 Long: `Gets TestSuite Execution details by ID, or list if id is not passed`, 27 Run: func(cmd *cobra.Command, args []string) { 28 client, _, err := common.GetClient(cmd) 29 ui.ExitOnError("getting client", err) 30 31 if len(args) > 0 { 32 executionID := args[0] 33 execution, err := client.GetTestSuiteExecution(executionID) 34 ui.ExitOnError("getting recent test suite execution data id:"+execution.Id, err) 35 err = render.Obj(cmd, execution, os.Stdout, renderer.TestSuiteExecutionRenderer) 36 ui.ExitOnError("rendering obj", err) 37 } else { 38 client, _, err := common.GetClient(cmd) 39 ui.ExitOnError("getting client", err) 40 41 executions, err := client.ListTestSuiteExecutions(testSuiteName, limit, 42 strings.Join(selectors, ",")) 43 ui.ExitOnError("getting test suites executions list", err) 44 err = render.List(cmd, executions, os.Stdout) 45 ui.ExitOnError("rendering list", err) 46 } 47 48 }, 49 } 50 51 cmd.Flags().StringVar(&testSuiteName, "test-suite", "", "test suite name") 52 cmd.Flags().IntVar(&limit, "limit", 1000, "max number of records to return") 53 cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1") 54 55 return cmd 56 }