github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/tests/delete.go (about) 1 package tests 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 NewDeleteTestsCmd() *cobra.Command { 13 var deleteAll bool 14 var selectors []string 15 16 cmd := &cobra.Command{ 17 Use: "test [testName]", 18 Aliases: []string{"t", "tests"}, 19 Short: "Delete Test", 20 Run: func(cmd *cobra.Command, args []string) { 21 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.DeleteTests("") 28 ui.ExitOnError("delete all tests from namespace "+namespace, err) 29 ui.SuccessAndExit("Succesfully deleted all tests in namespace", namespace) 30 } 31 32 if len(args) > 0 { 33 name := args[0] 34 err := client.DeleteTest(name) 35 ui.ExitOnError("delete test "+name+" from namespace "+namespace, err) 36 ui.SuccessAndExit("Succesfully deleted test", name) 37 } 38 39 if len(selectors) != 0 { 40 selector := strings.Join(selectors, ",") 41 err := client.DeleteTests(selector) 42 ui.ExitOnError("deleting tests by labels: "+selector, err) 43 ui.SuccessAndExit("Succesfully deleted tests by labels", selector) 44 } 45 46 ui.Failf("Pass Test 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 }