github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testworkflowtemplates/delete.go (about) 1 package testworkflowtemplates 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 NewDeleteTestWorkflowTemplateCmd() *cobra.Command { 13 var deleteAll bool 14 var selectors []string 15 16 cmd := &cobra.Command{ 17 Use: "testworkflowtemplate [name]", 18 Aliases: []string{"testworkflowtemplates", "twt"}, 19 Args: cobra.MaximumNArgs(1), 20 Short: "Delete test workflow templates", 21 22 Run: func(cmd *cobra.Command, args []string) { 23 namespace := cmd.Flag("namespace").Value.String() 24 client, _, err := common.GetClient(cmd) 25 ui.ExitOnError("getting client", err) 26 27 if len(args) == 0 { 28 if len(selectors) > 0 { 29 selector := strings.Join(selectors, ",") 30 err = client.DeleteTestWorkflowTemplates(selector) 31 ui.ExitOnError("deleting test workflow templates by labels: "+selector, err) 32 ui.SuccessAndExit("Successfully deleted test workflow templates by labels", selector) 33 } else if deleteAll { 34 err = client.DeleteTestWorkflowTemplates("") 35 ui.ExitOnError("delete all test workflow templates from namespace "+namespace, err) 36 ui.SuccessAndExit("Successfully deleted all test workflow templates in namespace", namespace) 37 } else { 38 ui.Failf("Pass test workflow template name, --all flag to delete all or labels to delete by labels") 39 } 40 return 41 } 42 43 name := args[0] 44 err = client.DeleteTestWorkflowTemplate(name) 45 ui.ExitOnError("delete test workflow template "+name+" from namespace "+namespace, err) 46 ui.SuccessAndExit("Successfully deleted test workflow template", name) 47 }, 48 } 49 50 cmd.Flags().BoolVar(&deleteAll, "all", false, "Delete all test workflow templates") 51 cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1") 52 53 return cmd 54 }