X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7b5729d984a9c516920270250f050bf72f1896d1..659a8c75c837ec30e2f9fb6f1a1859b625626c3e:/sdk/go/keepclient/keepclient.go diff --git a/sdk/go/keepclient/keepclient.go b/sdk/go/keepclient/keepclient.go index 23af470f78..5d791948dc 100644 --- a/sdk/go/keepclient/keepclient.go +++ b/sdk/go/keepclient/keepclient.go @@ -3,6 +3,7 @@ package keepclient import ( "crypto/md5" + "crypto/tls" "errors" "fmt" "git.curoverse.com/arvados.git/sdk/go/arvadosclient" @@ -11,6 +12,7 @@ import ( "io/ioutil" "log" "net/http" + "os" "regexp" "strings" "sync" @@ -44,13 +46,16 @@ type KeepClient struct { // Create a new KeepClient. This will contact the API server to discover Keep // servers. func MakeKeepClient(arv *arvadosclient.ArvadosClient) (kc KeepClient, err error) { + var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") + insecure := matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) kc = KeepClient{ Arvados: arv, Want_replicas: 2, Using_proxy: false, - Client: &http.Client{}, + Client: &http.Client{Transport: &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: insecure}}}, } - err = (&kc).DiscoverKeepServers() + _, err = (&kc).DiscoverKeepServers() return kc, err } @@ -159,10 +164,17 @@ func (this KeepClient) AuthorizedGet(hash string, var resp *http.Response if resp, err = this.Client.Do(req); err != nil || resp.StatusCode != http.StatusOK { - respbody, _ := ioutil.ReadAll(&io.LimitedReader{resp.Body, 4096}) + statusCode := -1 + var respbody []byte + if resp != nil { + statusCode = resp.StatusCode + if resp.Body != nil { + respbody, _ = ioutil.ReadAll(&io.LimitedReader{resp.Body, 4096}) + } + } response := strings.TrimSpace(string(respbody)) log.Printf("[%v] Download %v status code: %v error: \"%v\" response: \"%v\"", - requestId, url, resp.StatusCode, err, response) + requestId, url, statusCode, err, response) continue }