Skip to content

Commit fa6d21f

Browse files
committed
support for delete Lb rule with name
1 parent e43de39 commit fa6d21f

File tree

1 file changed

+36
-18
lines changed

1 file changed

+36
-18
lines changed

cmd/delete/delete_loadbalancer.go

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,12 @@ import (
2020
"encoding/json"
2121
"errors"
2222
"fmt"
23+
"github.com/spf13/cobra"
2324
"io"
25+
"loxicmd/pkg/api"
2426
"net/http"
25-
"os"
2627
"strconv"
2728
"time"
28-
29-
"loxicmd/pkg/api"
30-
31-
"github.com/spf13/cobra"
3229
)
3330

3431
type DeleteLoadBalancerResult struct {
@@ -37,10 +34,10 @@ type DeleteLoadBalancerResult struct {
3734

3835
func validation(args []string) error {
3936
if len(args) > 1 {
40-
fmt.Println("create lb command get so many args")
37+
fmt.Println("delete lb command too many args")
4138
fmt.Println(args)
4239
} else if len(args) <= 0 {
43-
return errors.New("delete lb need <EXTERNAL-IP> args")
40+
return errors.New("delete lb needs <EXTERNAL-IP> arg")
4441
}
4542

4643
return nil
@@ -53,27 +50,23 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
5350
var icmpPortNumberList bool
5451
var BGP bool
5552
var Mark uint16
53+
var Name string
5654

5755
var externalIP string
5856
//var endpointList []string
5957

6058
var deleteLbCmd = &cobra.Command{
61-
Use: "lb <EXTERNAL-IP> [--tcp portNumber] [--udp portNumber] [--sctp portNumber] [--icmp portNumber] [--bgp] [--mark=<val>]",
59+
Use: "lb <EXTERNAL-IP> [--tcp portNumber] [--udp portNumber] [--sctp portNumber] [--icmp portNumber] [--bgp] [--mark=<val>] [--name=<service-name>]",
6260
Short: "Delete a LoadBalancer",
6361
Long: `Delete a LoadBalancer.`,
6462
PreRun: func(cmd *cobra.Command, args []string) {
65-
if len(args) == 0 {
66-
cmd.Help()
67-
os.Exit(0)
68-
}
63+
//if len(args) == 0 {
64+
// cmd.Help()
65+
// os.Exit(0)
66+
//}
6967
},
7068
Run: func(cmd *cobra.Command, args []string) {
71-
if err := validation(args); err != nil {
72-
fmt.Println("not valid EXTERNAL-IP")
73-
return
74-
}
75-
externalIP = args[0]
76-
PortNumberList := make(map[string][]int)
69+
7770
client := api.NewLoxiClient(restOptions)
7871
ctx := context.TODO()
7972
var cancel context.CancelFunc
@@ -82,6 +75,30 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
8275
defer cancel()
8376
}
8477

78+
if Name != "" {
79+
subResources := []string{
80+
"name", Name,
81+
}
82+
resp, err := client.LoadBalancer().SubResources(subResources).Delete(ctx)
83+
if err != nil {
84+
fmt.Printf("Error: Failed to delete LoadBalancer(Name: %s)\n", Name)
85+
return
86+
}
87+
defer resp.Body.Close()
88+
fmt.Printf("Debug: response.StatusCode: %d\n", resp.StatusCode)
89+
if resp.StatusCode == http.StatusOK {
90+
PrintDeleteResult(resp, *restOptions)
91+
}
92+
return
93+
}
94+
95+
if err := validation(args); err != nil {
96+
fmt.Println("not valid EXTERNAL-IP")
97+
return
98+
}
99+
externalIP = args[0]
100+
PortNumberList := make(map[string][]int)
101+
85102
if len(tcpPortNumberList) > 0 {
86103
PortNumberList["tcp"] = tcpPortNumberList
87104
}
@@ -129,6 +146,7 @@ func NewDeleteLoadBalancerCmd(restOptions *api.RESTOptions) *cobra.Command {
129146
deleteLbCmd.Flags().BoolVarP(&icmpPortNumberList, "icmp", "", false, "ICMP port list can be specified as '<port>,<port>...'")
130147
deleteLbCmd.Flags().BoolVarP(&BGP, "bgp", "", false, "BGP enable information'")
131148
deleteLbCmd.Flags().Uint16VarP(&Mark, "mark", "", 0, "Specify the mark num to segregate a load-balancer VIP service")
149+
deleteLbCmd.Flags().StringVarP(&Name, "name", "", Name, "Name for load balancer rule")
132150
return deleteLbCmd
133151
}
134152

0 commit comments

Comments
 (0)