github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testsources/delete.go (about) 1 package testsources 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 NewDeleteTestSourceCmd() *cobra.Command { 13 var name string 14 var selectors []string 15 16 cmd := &cobra.Command{ 17 Use: "testsource <testSourceName>", 18 Aliases: []string{"testsources", "tsc"}, 19 Short: "Delete test source", 20 Long: `Delete test source, pass test source name which should be deleted`, 21 Run: func(cmd *cobra.Command, args []string) { 22 client, _, err := common.GetClient(cmd) 23 ui.ExitOnError("getting client", err) 24 25 if len(args) > 0 { 26 name = args[0] 27 err := client.DeleteTestSource(name) 28 ui.ExitOnError("deleting test source: "+name, err) 29 ui.SuccessAndExit("Succesfully deleted test source", name) 30 } 31 32 if len(selectors) != 0 { 33 selector := strings.Join(selectors, ",") 34 err := client.DeleteTestSources(selector) 35 ui.ExitOnError("deleting test sources by labels: "+selector, err) 36 ui.SuccessAndExit("Succesfully deleted test sources by labels", selector) 37 } 38 39 ui.Failf("Pass TestSource name or labels to delete by labels") 40 }, 41 } 42 43 cmd.Flags().StringVarP(&name, "name", "n", "", "unique test source name, you can also pass it as first argument") 44 cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1") 45 46 return cmd 47 }