Skip to content
This repository was archived by the owner on Apr 25, 2024. It is now read-only.

Commit f2d411c

Browse files
authored
Merge pull request #119 from tianyuansun/fix/nat-and-delete-404
fix: remove create subnet logic and fix delete 404 error
2 parents 878eb99 + 43f0fb1 commit f2d411c

File tree

2 files changed

+9
-40
lines changed

2 files changed

+9
-40
lines changed

pkg/cloud-provider/load_balancer_vpc.go

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,8 @@ package cloud_provider
1818

1919
import (
2020
"fmt"
21-
"math/rand"
22-
"net"
23-
"time"
24-
2521
"github.com/golang/glog"
26-
27-
"k8s.io/cloud-provider-baiducloud/pkg/cloud-sdk/vpc"
22+
"math/rand"
2823
)
2924

3025
// TODO: 存在很大的优化空间
@@ -94,37 +89,5 @@ func (bc *Baiducloud) getVpcInfoForBLB(serviceAnnotation *ServiceAnnotation) (st
9489
}
9590
}
9691

97-
// create one
98-
currentCidr := subnet.Cidr
99-
tryCount := 0
100-
for { // loop
101-
tryCount++
102-
if tryCount > 10 {
103-
return "", "", fmt.Errorf("CreateSubnet failed after 10 retries")
104-
}
105-
_, cidr, err := net.ParseCIDR(currentCidr)
106-
if err != nil {
107-
return "", "", fmt.Errorf("ParseCIDR failed: %v", err)
108-
}
109-
mask, _ := cidr.Mask.Size()
110-
nextCidr, notExist := NextSubnet(cidr, mask)
111-
if notExist {
112-
return "", "", fmt.Errorf("NextSubnet failed: %v", err)
113-
}
114-
currentCidr = nextCidr.String()
115-
createSubnetArgs := &vpc.CreateSubnetArgs{
116-
Name: "CCE-Reserve",
117-
ZoneName: subnet.ZoneName,
118-
Cidr: nextCidr.String(),
119-
VpcID: subnet.VpcID,
120-
SubnetType: "BCC",
121-
}
122-
newSubnetId, err := bc.clientSet.Vpc().CreateSubnet(createSubnetArgs)
123-
if err != nil {
124-
glog.V(3).Infof("CreateSubnet failed: %v, will try again.", err)
125-
time.Sleep(3 * time.Second)
126-
continue
127-
}
128-
return subnet.VpcID, newSubnetId, nil
129-
}
92+
return "", "", fmt.Errorf("failed to find Subnet for BLB, maybe need to create a Subnet of type BCC")
13093
}

pkg/cloud-sdk/eip/eip.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import (
2020
"bytes"
2121
"encoding/json"
2222
"fmt"
23-
2423
"k8s.io/cloud-provider-baiducloud/pkg/cloud-sdk/bce"
24+
"net/http"
2525
)
2626

2727
type Eip struct {
@@ -269,6 +269,12 @@ func (c *Client) DeleteEip(args *EipArgs) error {
269269
}
270270
_, err = c.SendRequest(req, nil)
271271
if err != nil {
272+
// if 404, think it as already deleted
273+
if e, ok := err.(*bce.Error); ok {
274+
if e.StatusCode == http.StatusNotFound {
275+
return nil
276+
}
277+
}
272278
return err
273279
}
274280
return nil

0 commit comments

Comments
 (0)