forked from kubesphere-sigs/ks
/
del.go
33 lines (31 loc) · 901 Bytes
/
del.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package pipeline
import (
"context"
"fmt"
"github.com/linuxsuren/ks/kubectl-plugin/types"
"github.com/spf13/cobra"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/dynamic"
)
// NewDelPipelineCmd returns a command to delete pipelines
func NewDelPipelineCmd(client dynamic.Interface) (cmd *cobra.Command) {
cmd = &cobra.Command{
Use: "delete",
Aliases: []string{"del", "remove", "rm"},
Short: "Delete a specific Pipeline of KubeSphere DevOps",
RunE: func(cmd *cobra.Command, args []string) (err error) {
var pips []string
var ns string
if ns, pips, err = getPipelinesWithConfirm(client, args); err == nil {
for _, pip := range pips {
fmt.Println(pip)
if err = client.Resource(types.GetPipelineSchema()).Namespace(ns).Delete(context.TODO(), pip, metav1.DeleteOptions{}); err != nil {
break
}
}
}
return
},
}
return
}