From f86b6c6eeeb3fb7a0a7dcdbd99716a43c09ab07e Mon Sep 17 00:00:00 2001 From: Patrik Cyvoct Date: Fri, 14 Feb 2020 14:03:25 +0100 Subject: [PATCH] fix(k8s): add default timeout to WaitForCluster Signed-off-by: Patrik Cyvoct --- api/k8s/v1beta4/k8s_helpers.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/api/k8s/v1beta4/k8s_helpers.go b/api/k8s/v1beta4/k8s_helpers.go index 66ae31d87..1b1f7790e 100644 --- a/api/k8s/v1beta4/k8s_helpers.go +++ b/api/k8s/v1beta4/k8s_helpers.go @@ -8,16 +8,24 @@ import ( "github.com/scaleway/scaleway-sdk-go/scw" ) +const ( + waitForClusterDefaultTimeout = time.Minute * 15 +) + // WaitForClusterRequest is used by WaitForCluster method. type WaitForClusterRequest struct { ClusterID string Region scw.Region Status ClusterStatus - Timeout time.Duration + Timeout *time.Duration } // WaitForCluster waits for the cluster to be in a "terminal state" before returning. func (s *API) WaitForCluster(req *WaitForClusterRequest) (*Cluster, error) { + timeout := waitForClusterDefaultTimeout + if req.Timeout != nil { + timeout = *req.Timeout + } terminalStatus := map[ClusterStatus]struct{}{ ClusterStatusReady: {}, ClusterStatusError: {}, @@ -39,7 +47,7 @@ func (s *API) WaitForCluster(req *WaitForClusterRequest) (*Cluster, error) { _, isTerminal := terminalStatus[cluster.Status] return cluster, isTerminal, nil }, - Timeout: req.Timeout, + Timeout: timeout, IntervalStrategy: async.LinearIntervalStrategy(5 * time.Second), }) if err != nil {