diff --git a/integration/openshift.go b/integration/openshift.go index ffebfefb..34cef8b3 100644 --- a/integration/openshift.go +++ b/integration/openshift.go @@ -2,6 +2,7 @@ package main import ( "bufio" + "context" "encoding/base64" "fmt" "io/ioutil" @@ -9,6 +10,7 @@ import ( "os/exec" "path/filepath" "strings" + "time" "github.com/docker/docker/pkg/homedir" "github.com/go-check/check" @@ -109,6 +111,8 @@ func (cluster *openshiftCluster) startMaster(c *check.C) { gotPortCheck := false gotLogCheck := false + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() for !gotPortCheck || !gotLogCheck { c.Logf("Waiting for master") select { @@ -121,6 +125,8 @@ func (cluster *openshiftCluster) startMaster(c *check.C) { c.Fatal("log check done, success message not found") } gotLogCheck = true + case <-ctx.Done(): + c.Fatalf("Timed out waiting for master: %v", ctx.Err()) } } c.Logf("OK, master started!") @@ -166,8 +172,14 @@ func (cluster *openshiftCluster) startRegistryProcess(c *check.C, port int, conf terminatePortCheck <- true }() c.Logf("Waiting for registry to start") - <-portOpen - c.Logf("OK, Registry port open") + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute) + defer cancel() + select { + case <-portOpen: + c.Logf("OK, Registry port open") + case <-ctx.Done(): + c.Fatalf("Timed out waiting for registry to start: %v", ctx.Err()) + } return cmd }