Skip to content

Commit

Permalink
fix: add custom wait for retry logic
Browse files Browse the repository at this point in the history
Signed-off-by: Shubharanshu Mahapatra <[email protected]>
  • Loading branch information
Shubhranshu153 committed Mar 28, 2024
1 parent 37fc4ec commit 6832214
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions tests/tests.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"os"
"path/filepath"
"strings"
"time"

"github.com/onsi/ginkgo/v2"
"github.com/onsi/gomega"
Expand Down Expand Up @@ -105,15 +106,23 @@ func SetupLocalRegistry(o *option.Option) {
_, name, _ := strings.Cut(ref, "/")
// allow up to a minute for remote pulls to account for external network
// latency/throughput issues or throttling (default is 10 seconds)
// retry pull for 3 times
// retry pull for 3 times.
var session *gexec.Session
exitCode := -1
for i := 0; i < retryPull; i++ {
session = command.New(o, "pull", ref).WithTimeoutInSeconds(30).WithoutCheckingExitCode().Run()
if session.ExitCode() == 0 {
session = command.New(o, "pull", ref).WithoutWait().Run()
select {
case <-session.Exited:
exitCode = session.ExitCode()
case <-time.After(30 * time.Second):
fmt.Printf("Timeout occurred, command hasn't exited yet (attempt %d)", i)
session.Kill()
}
if exitCode == 0 {
break
}
}
if session.ExitCode() != 0 {
if exitCode != 0 {
ginkgo.Fail("Failed to pull image " + ref)
}

Expand Down

0 comments on commit 6832214

Please sign in to comment.