diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index d2a85dab5f..d3bcfe403c 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -366,7 +366,7 @@ func waitLoadbalancerDeleted(client *gophercloud.ServiceClient, loadbalancerID s err := wait.ExponentialBackoff(backoff, func() (bool, error) { _, err := loadbalancers.Get(client, loadbalancerID).Extract() if err != nil { - if err == ErrNotFound { + if isNotFound(err) { return true, nil } return false, err @@ -1423,18 +1423,6 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. } } - // get all members associated with each poolIDs - var memberIDs []string - for _, pool := range poolIDs { - membersList, err := getMembersByPoolID(lbaas.lb, pool) - if err != nil && !isNotFound(err) { - return fmt.Errorf("error getting pool members %s: %v", pool, err) - } - for _, member := range membersList { - memberIDs = append(memberIDs, member.ID) - } - } - // delete all monitors for _, monitorID := range monitorIDs { err := v2monitors.Delete(lbaas.lb, monitorID).ExtractErr() @@ -1449,9 +1437,14 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. // delete all members and pools for _, poolID := range poolIDs { + // get members for current pool + membersList, err := getMembersByPoolID(lbaas.lb, poolID) + if err != nil && !isNotFound(err) { + return fmt.Errorf("error getting pool members %s: %v", poolID, err) + } // delete all members for this pool - for _, memberID := range memberIDs { - err := v2pools.DeleteMember(lbaas.lb, poolID, memberID).ExtractErr() + for _, member := range membersList { + err := v2pools.DeleteMember(lbaas.lb, poolID, member.ID).ExtractErr() if err != nil && !isNotFound(err) { return err } @@ -1462,7 +1455,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. } // delete pool - err := v2pools.Delete(lbaas.lb, poolID).ExtractErr() + err = v2pools.Delete(lbaas.lb, poolID).ExtractErr() if err != nil && !isNotFound(err) { return err }