From b0f44e3bee8a61e1cf713bd4f325c178cf51031a Mon Sep 17 00:00:00 2001 From: Beata Skiba Date: Fri, 30 Mar 2018 13:26:22 +0200 Subject: [PATCH] Retry node pool deletion in autoscaling tests. This will deflake autoscaling e2e tests on gke. When there is already an operation running on the cluster, the node pool deletion will fail. This will in turn make other tests that add extra node pool fail. --- .../e2e/autoscaling/cluster_size_autoscaling.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/test/e2e/autoscaling/cluster_size_autoscaling.go b/test/e2e/autoscaling/cluster_size_autoscaling.go index 6bf0744bee5..0e820d59600 100644 --- a/test/e2e/autoscaling/cluster_size_autoscaling.go +++ b/test/e2e/autoscaling/cluster_size_autoscaling.go @@ -1304,11 +1304,18 @@ func deleteNodePool(name string) { glog.Infof("Deleting node pool %s", name) args := []string{"container", "node-pools", "delete", name, "--quiet", "--cluster=" + framework.TestContext.CloudConfig.Cluster} - output, err := execCmd(getGcloudCommand(args)...).CombinedOutput() - if err != nil { - glog.Infof("Error: %v", err) - } - glog.Infof("Node-pool deletion output: %s", output) + err := wait.ExponentialBackoff( + wait.Backoff{Duration: 1 * time.Minute, Factor: float64(3), Steps: 3}, + func() (bool, error) { + output, err := execCmd(getGcloudCommand(args)...).CombinedOutput() + if err != nil { + glog.Warningf("Error deleting nodegroup - error:%v, output: %s", err, output) + return false, nil + } + glog.Infof("Node-pool deletion output: %s", output) + return true, nil + }) + framework.ExpectNoError(err) } func getPoolNodes(f *framework.Framework, poolName string) []*v1.Node {