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  }