mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 08:17:26 +00:00
Merge pull request #4770 from gmarek/client4
Add waiting for GCE operations to finish before proceeding in various functions.
This commit is contained in:
commit
7665b2668f
@ -174,10 +174,13 @@ func (gce *GCECloud) makeTargetPool(name, region string, hosts []string, affinit
|
|||||||
Instances: instances,
|
Instances: instances,
|
||||||
SessionAffinity: string(affinityType),
|
SessionAffinity: string(affinityType),
|
||||||
}
|
}
|
||||||
_, err := gce.service.TargetPools.Insert(gce.projectID, region, pool).Do()
|
op, err := gce.service.TargetPools.Insert(gce.projectID, region, pool).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
if err = gce.waitForRegionOp(op, region); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
link := fmt.Sprintf("https://www.googleapis.com/compute/v1/projects/%s/regions/%s/targetPools/%s", gce.projectID, region, name)
|
link := fmt.Sprintf("https://www.googleapis.com/compute/v1/projects/%s/regions/%s/targetPools/%s", gce.projectID, region, name)
|
||||||
return link, nil
|
return link, nil
|
||||||
}
|
}
|
||||||
@ -186,7 +189,7 @@ func (gce *GCECloud) waitForRegionOp(op *compute.Operation, region string) error
|
|||||||
pollOp := op
|
pollOp := op
|
||||||
for pollOp.Status != "DONE" {
|
for pollOp.Status != "DONE" {
|
||||||
var err error
|
var err error
|
||||||
time.Sleep(time.Second * 10)
|
time.Sleep(time.Second)
|
||||||
pollOp, err = gce.service.RegionOperations.Get(gce.projectID, region, op.Name).Do()
|
pollOp, err = gce.service.RegionOperations.Get(gce.projectID, region, op.Name).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -254,17 +257,34 @@ func (gce *GCECloud) UpdateTCPLoadBalancer(name, region string, hosts []string)
|
|||||||
Instances: refs,
|
Instances: refs,
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := gce.service.TargetPools.AddInstance(gce.projectID, region, name, req).Do()
|
op, err := gce.service.TargetPools.AddInstance(gce.projectID, region, name, req).Do()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = gce.waitForRegionOp(op, region)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteTCPLoadBalancer is an implementation of TCPLoadBalancer.DeleteTCPLoadBalancer.
|
// DeleteTCPLoadBalancer is an implementation of TCPLoadBalancer.DeleteTCPLoadBalancer.
|
||||||
func (gce *GCECloud) DeleteTCPLoadBalancer(name, region string) error {
|
func (gce *GCECloud) DeleteTCPLoadBalancer(name, region string) error {
|
||||||
_, err := gce.service.ForwardingRules.Delete(gce.projectID, region, name).Do()
|
op, err := gce.service.ForwardingRules.Delete(gce.projectID, region, name).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
glog.Warningln("Failed to delete Forwarding Rules %s: got error %s. Trying to delete Target Pool", name, err.Error())
|
||||||
return err
|
return err
|
||||||
|
} else {
|
||||||
|
err = gce.waitForRegionOp(op, region)
|
||||||
|
if err != nil {
|
||||||
|
glog.Warningln("Failed waiting for Forwarding Rule %s to be deleted: got error %s. Trying to delete Target Pool", name, err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
op, err = gce.service.TargetPools.Delete(gce.projectID, region, name).Do()
|
||||||
|
if err != nil {
|
||||||
|
glog.Warningln("Failed to delete Target Pool %s, got error %s.", name, err.Error())
|
||||||
|
}
|
||||||
|
err = gce.waitForRegionOp(op, region)
|
||||||
|
if err != nil {
|
||||||
|
glog.Warningln("Failed waiting for Target Pool %s to be deleted: got error %s.", name, err.Error())
|
||||||
}
|
}
|
||||||
_, err = gce.service.TargetPools.Delete(gce.projectID, region, name).Do()
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user