From 744ff16cedd7f551e5b04faffbbf9a1e9de95958 Mon Sep 17 00:00:00 2001 From: n-marton Date: Fri, 9 Mar 2018 15:50:15 +0100 Subject: [PATCH] fix for openstack member cleanup for multiple port cases --- .../openstack/openstack_loadbalancer.go | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index 1d894db22d..851db21be0 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -1424,18 +1424,6 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName } } - // 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() @@ -1450,9 +1438,14 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName // 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 } @@ -1463,7 +1456,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName } // delete pool - err := v2pools.Delete(lbaas.lb, poolID).ExtractErr() + err = v2pools.Delete(lbaas.lb, poolID).ExtractErr() if err != nil && !isNotFound(err) { return err }