Skip to content

Commit 56c246f

Browse files
committed
remove attached LB along with network delete
1 parent 768781c commit 56c246f

2 files changed

Lines changed: 58 additions & 32 deletions

File tree

plugin/driver/driver.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func (driver *driver) createNetwork(w http.ResponseWriter, r *http.Request) {
139139
neName := create.Options[netlabel.GenericData].(map[string]interface{})["bridge"]
140140

141141
if neName != nil {
142-
AddNetworkInfo(create.NetworkID, neName.(string), domainid.(string))
142+
AddNetworkInfo(create.NetworkID, neName.(string), domainid.(string))
143143
AddGatewayInfo(create.NetworkID, domainid.(string), gatewayip)
144144
emptyResponse(w)
145145

@@ -177,6 +177,7 @@ func (driver *driver) deleteNetwork(w http.ResponseWriter, r *http.Request) {
177177
domainid = default_vd
178178
}
179179
DeleteNetworkLinks(domainid, delete.NetworkID)
180+
DeleteAttachedLB(domainid, delete.NetworkID)
180181
BridgeDelete(delete.NetworkID, domainid)
181182
DomainDelete(domainid)
182183

plugin/driver/pg_helper.go

Lines changed: 56 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,23 @@ func BridgeDelete(ID string, domainid string) {
7878
}
7979

8080
func AddNetworkInfo(dNetwork string, neName string, domain string) {
81-
id := GetNeId(neName, domain)
82-
var neId string
83-
if id == "" {
84-
neId = neName
85-
} else {
86-
neId = id
87-
}
88-
url := "/0/connectivity/domain/" + domain + "/ne/" + neId
89-
body, _ := RestCall("GET", url+"?configonly=true", nil)
90-
var netData map[string]interface{}
91-
err := json.Unmarshal([]byte(body), &netData)
92-
if err != nil {
93-
panic(err)
94-
}
95-
netData["metadata"] = dNetwork
96-
finalData, _ := json.Marshal(netData)
97-
RestCall("PUT", url, finalData)
81+
id := GetNeId(neName, domain)
82+
var neId string
83+
if id == "" {
84+
neId = neName
85+
} else {
86+
neId = id
87+
}
88+
url := "/0/connectivity/domain/" + domain + "/ne/" + neId
89+
body, _ := RestCall("GET", url+"?configonly=true", nil)
90+
var netData map[string]interface{}
91+
err := json.Unmarshal([]byte(body), &netData)
92+
if err != nil {
93+
panic(err)
94+
}
95+
netData["metadata"] = dNetwork
96+
finalData, _ := json.Marshal(netData)
97+
RestCall("PUT", url, finalData)
9898
}
9999

100100
func FindDomainFromNetwork(ID string) (domainid string, netid string) {
@@ -222,20 +222,20 @@ func DomainDelete(domainID string) {
222222

223223
func GetNeId(NeName string, DomainID string) (NeID string) {
224224

225-
url := "/0/connectivity/domain/" + DomainID + "/ne?configonly=true&level=1"
226-
body, _ := RestCall("GET", url, nil)
227-
var ne_data map[string]interface{}
228-
err := json.Unmarshal([]byte(body), &ne_data)
229-
if err != nil {
230-
panic(err)
231-
}
232-
for nes, ne_val := range ne_data {
233-
if ne_val.(map[string]interface{})["ne_dname"] == NeName {
234-
NeID = nes
235-
return NeID
236-
}
237-
}
238-
return ""
225+
url := "/0/connectivity/domain/" + DomainID + "/ne?configonly=true&level=1"
226+
body, _ := RestCall("GET", url, nil)
227+
var ne_data map[string]interface{}
228+
err := json.Unmarshal([]byte(body), &ne_data)
229+
if err != nil {
230+
panic(err)
231+
}
232+
for nes, ne_val := range ne_data {
233+
if ne_val.(map[string]interface{})["ne_dname"] == NeName {
234+
NeID = nes
235+
return NeID
236+
}
237+
}
238+
return ""
239239
}
240240

241241
func CreateNetworkLink(NeName string, DomainID string, NetworkID string, IP string, Netmask string) {
@@ -384,3 +384,28 @@ func RemoveMetaconfig(domainID string, netID string, endpointID string) {
384384
}
385385
}
386386
}
387+
388+
func DeleteAttachedLB(DomainID string, NetworkID string) {
389+
390+
url := "/0/connectivity/domain_prop/" + DomainID + "/ne"
391+
body, _ := RestCall("GET", url+"?configonly=true", nil)
392+
var domain_data map[string]interface{}
393+
err := json.Unmarshal([]byte(body), &domain_data)
394+
if err != nil {
395+
panic(err)
396+
}
397+
for a, b := range domain_data {
398+
if b.(map[string]interface{})["ne_metadata"] == "lbaas" {
399+
x := b.(map[string]interface{})["prop"].(map[string]interface{})["vip"].(map[string]interface{})["hint"]
400+
y := strings.Split(x.(string), ",")
401+
for _, z := range y {
402+
if strings.HasPrefix(z, "attachment") {
403+
if strings.HasSuffix(z, NetworkID) {
404+
url = "/v0/vd/" + DomainID + "/lbaas/" + a
405+
RestCall("DELETE", url, nil)
406+
}
407+
}
408+
}
409+
}
410+
}
411+
}

0 commit comments

Comments
 (0)