mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
the api does not support filtering health monitors by pool_id, so /lbaas/healthmonitors?pool_id=abc123 will always return all health monitors in your OS tenant. fortunately, we can get the health monitor IDs from the query to /lbaas/pools and delete them
This commit is contained in:
parent
ca00e596bd
commit
77a203c49f
@ -658,8 +658,9 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *api
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// get all pools associated with this loadbalancer
|
// get all pools (and health monitors) associated with this loadbalancer
|
||||||
var poolIDs []string
|
var poolIDs []string
|
||||||
|
var monitorIDs []string
|
||||||
err = v2_pools.List(lbaas.network, v2_pools.ListOpts{LoadbalancerID: loadbalancer.ID}).EachPage(func(page pagination.Page) (bool, error) {
|
err = v2_pools.List(lbaas.network, v2_pools.ListOpts{LoadbalancerID: loadbalancer.ID}).EachPage(func(page pagination.Page) (bool, error) {
|
||||||
poolsList, err := v2_pools.ExtractPools(page)
|
poolsList, err := v2_pools.ExtractPools(page)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -668,6 +669,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *api
|
|||||||
|
|
||||||
for _, pool := range poolsList {
|
for _, pool := range poolsList {
|
||||||
poolIDs = append(poolIDs, pool.ID)
|
poolIDs = append(poolIDs, pool.ID)
|
||||||
|
monitorIDs = append(monitorIDs, pool.MonitorID)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true, nil
|
return true, nil
|
||||||
@ -696,26 +698,6 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *api
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get all monitors associated with each poolIDs
|
|
||||||
var monitorIDs []string
|
|
||||||
for _, poolID := range poolIDs {
|
|
||||||
err = v2_monitors.List(lbaas.network, v2_monitors.ListOpts{PoolID: poolID}).EachPage(func(page pagination.Page) (bool, error) {
|
|
||||||
monitorsList, err := v2_monitors.ExtractMonitors(page)
|
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, monitor := range monitorsList {
|
|
||||||
monitorIDs = append(monitorIDs, monitor.ID)
|
|
||||||
}
|
|
||||||
|
|
||||||
return true, nil
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete all monitors
|
// delete all monitors
|
||||||
for _, monitorID := range monitorIDs {
|
for _, monitorID := range monitorIDs {
|
||||||
err := v2_monitors.Delete(lbaas.network, monitorID).ExtractErr()
|
err := v2_monitors.Delete(lbaas.network, monitorID).ExtractErr()
|
||||||
|
Loading…
Reference in New Issue
Block a user