1
0
mirror of https://github.com/openshift/image-registry.git synced 2026-02-05 09:45:55 +01:00
Files
2018-01-23 13:21:19 -05:00

52 lines
1.0 KiB
Go

package testframework
import (
"fmt"
"net"
"net/http"
"time"
"k8s.io/apimachinery/pkg/util/wait"
)
func WaitTCP(addr string) error {
var lastErr error
err := wait.Poll(500*time.Millisecond, wait.ForeverTestTimeout, func() (done bool, err error) {
conn, err := net.DialTimeout("tcp", addr, 200*time.Millisecond)
if err != nil {
lastErr = err
return false, nil
}
_ = conn.Close()
return true, nil
})
if err != nil {
return fmt.Errorf("wait for %s: %v", addr, lastErr)
}
return nil
}
func WaitHTTP(rt http.RoundTripper, url string) error {
var lastErr error
httpClient := &http.Client{
Transport: rt,
}
err := wait.Poll(500*time.Millisecond, time.Second*120, func() (done bool, err error) {
resp, err := httpClient.Get(url)
if err != nil {
lastErr = err
return false, nil
}
_ = resp.Body.Close()
if resp.StatusCode != http.StatusOK {
lastErr = fmt.Errorf("%s", resp.Status)
return false, nil
}
return true, nil
})
if err != nil {
return fmt.Errorf("wait for %s: %v", url, lastErr)
}
return nil
}