reg/registry/ping.go

29 lines
627 B
Go
Raw Permalink Normal View History

package registry
import (
"context"
"net/http"
"strings"
)
// Pingable checks pingable
func (r *Registry) Pingable() bool {
// Currently *.gcr.io/v2 can't be ping if users have each projects auth
return !strings.HasSuffix(r.URL, "gcr.io")
}
// Ping tries to contact a registry URL to make sure it is up and accessible.
func (r *Registry) Ping(ctx context.Context) error {
url := r.url("/v2/")
r.Logf("registry.ping url=%s", url)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
resp, err := r.Client.Do(req.WithContext(ctx))
if resp != nil {
defer resp.Body.Close()
}
return err
}