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  }