github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/executors/delete.go (about)

     1  package executors
     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 NewDeleteExecutorCmd() *cobra.Command {
    13  	var name string
    14  	var selectors []string
    15  
    16  	cmd := &cobra.Command{
    17  		Use:   "executor [executorName]",
    18  		Short: "Delete Executor",
    19  		Long:  `Delete Executor Resource, pass name to delete by name`,
    20  		Run: func(cmd *cobra.Command, args []string) {
    21  			client, _, err := common.GetClient(cmd)
    22  			ui.ExitOnError("getting client", err)
    23  
    24  			if len(args) > 0 {
    25  				name = args[0]
    26  				err := client.DeleteExecutor(name)
    27  				ui.ExitOnError("deleting executor: "+name, err)
    28  				ui.SuccessAndExit("Succesfully deleted executor", name)
    29  			}
    30  
    31  			if len(selectors) != 0 {
    32  				selector := strings.Join(selectors, ",")
    33  				err := client.DeleteExecutors(selector)
    34  				ui.ExitOnError("deleting executors by labels: "+selector, err)
    35  				ui.SuccessAndExit("Succesfully deleted executors by labels", selector)
    36  			}
    37  
    38  			ui.Failf("Pass Executor name or labels to delete by labels")
    39  		},
    40  	}
    41  
    42  	cmd.Flags().StringVarP(&name, "name", "n", "", "unique executor name, you can also pass it as first argument")
    43  	cmd.Flags().StringSliceVarP(&selectors, "label", "l", nil, "label key value pair: --label key1=value1")
    44  
    45  	return cmd
    46  }