Merge pull request #48872 from FengyunPan/fix-order

Automatic merge from submit-queue (batch tested with PRs 48890, 46893, 48872, 48896)

Fix the order of deletion

1. EnsureLoadBalancer can't delete pool without deleting members,
   just let EnsureLoadBalancerDeleted do it.
2. Add some friendly error message

**Release note**:
```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2017-07-14 16:49:53 -07:00 committed by GitHub
commit 8c8f562204

View File

@ -1285,7 +1285,7 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
LBMethod: lbmethod,
}).Extract()
if err != nil {
return nil, err
return nil, fmt.Errorf("Error creating pool for openstack load balancer %s: %v", name, err)
}
for _, node := range nodes {
@ -1300,8 +1300,8 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
Address: addr,
}).Extract()
if err != nil {
pools.Delete(lb.network, pool.ID)
return nil, err
return nil, fmt.Errorf("Error creating member for the pool(%s) of openstack load balancer %s: %v",
pool.ID, name, err)
}
}
@ -1314,15 +1314,13 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
MaxRetries: int(lb.opts.MonitorMaxRetries),
}).Extract()
if err != nil {
pools.Delete(lb.network, pool.ID)
return nil, err
return nil, fmt.Errorf("Error creating monitor for openstack load balancer %s: %v", name, err)
}
_, err = pools.AssociateMonitor(lb.network, pool.ID, mon.ID).Extract()
if err != nil {
monitors.Delete(lb.network, mon.ID)
pools.Delete(lb.network, pool.ID)
return nil, err
return nil, fmt.Errorf("Error associating monitor(%s) with pool(%s) for"+
"openstack load balancer %s: %v", mon.ID, pool.ID, name, err)
}
}
@ -1343,11 +1341,7 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
vip, err := vips.Create(lb.network, createOpts).Extract()
if err != nil {
if mon != nil {
monitors.Delete(lb.network, mon.ID)
}
pools.Delete(lb.network, pool.ID)
return nil, err
return nil, fmt.Errorf("Error creating vip for openstack load balancer %s: %v", name, err)
}
status := &v1.LoadBalancerStatus{}
@ -1361,7 +1355,7 @@ func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service
}
floatIP, err := floatingips.Create(lb.network, floatIPOpts).Extract()
if err != nil {
return nil, err
return nil, fmt.Errorf("Error creating floatingip for openstack load balancer %s: %v", name, err)
}
status.Ingress = append(status.Ingress, v1.LoadBalancerIngress{IP: floatIP.FloatingIP})