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  }