mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-08 16:06:47 +00:00
40 lines
838 B
Go
40 lines
838 B
Go
package pkg
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
// ConnectivityCheck checks if the controller can reach the
|
|
// public Internet via HTTPS.
|
|
// A license is required to use OpenFaaS CE for Commercial Use.
|
|
func ConnectivityCheck() error {
|
|
req, err := http.NewRequest(http.MethodGet, "https://checkip.amazonaws.com", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
req.Header.Set("User-Agent", fmt.Sprintf("openfaas-ce/%s faas-netes", Version))
|
|
|
|
res, err := http.DefaultClient.Do(req)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if req.Body != nil {
|
|
defer req.Body.Close()
|
|
}
|
|
|
|
if res.StatusCode != http.StatusOK {
|
|
var body []byte
|
|
if res.Body != nil {
|
|
body, _ = io.ReadAll(res.Body)
|
|
}
|
|
|
|
return fmt.Errorf("unexpected status code checking connectivity: %d, body: %s", res.StatusCode, strings.TrimSpace(string(body)))
|
|
}
|
|
|
|
return nil
|
|
}
|