github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testsuites/delete.go (about)

     1  package testsuites
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/spf13/cobra"
     7  
     8  	"github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common"
     9  	"github.com/kubeshop/testkube/pkg/ui"
    10  )
    11  
    12  func NewDeleteTestSuiteCmd() *cobra.Command {
    13  	var deleteAll bool
    14  	var selectors []string
    15  
    16  	cmd := &cobra.Command{
    17  		Use:     "testsuite <testSuiteName>",
    18  		Aliases: []string{"ts"},
    19  		Short:   "Delete test suite",
    20  		Long:    `Delete test suite by name`,
    21  		Run: func(cmd *cobra.Command, args []string) {
    22  			client, _, err := common.GetClient(cmd)
    23  			ui.ExitOnError("getting client", err)
    24  
    25  			namespace := cmd.Flag("namespace").Value.String()
    26  			if deleteAll {
    27  				err := client.DeleteTestSuites("")
    28  				ui.ExitOnError("delete all tests from namespace "+namespace, err)
    29  				ui.SuccessAndExit("Succesfully deleted all test suites in namespace", namespace)
    30  			}
    31  
    32  			if len(args) > 0 {
    33  				name := args[0]
    34  				err := client.DeleteTestSuite(name)
    35  				ui.ExitOnError("delete test suite "+name+" from namespace "+namespace, err)
    36  				ui.SuccessAndExit("Succesfully deleted test suite", name)
    37  			}
    38  
    39  			if len(selectors) != 0 {
    40  				selector := strings.Join(selectors, ",")
    41  				err := client.DeleteTestSuites(selector)
    42  				ui.ExitOnError("deleting test suites by labels: "+selector, err)
    43  				ui.SuccessAndExit("Succesfully deleted test suites by labels", selector)
    44  			}
    45  
    46  			ui.Failf("Pass TestSuite name, --all flag to delete all or labels to delete by labels")
    47  		},
    48  	}
    49  
    50  	cmd.Flags().BoolVar(&deleteAll, "all", false, "Delete all tests")
    51  	cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1")
    52  
    53  	return cmd
    54  }