X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/853cb66fe7d3c24e9936b4a49fdd775abc0ed0f4..e56ae6aad06c37d5512537047871d7363dd97620:/sdk/go/keepclient/discover.go?ds=sidebyside diff --git a/sdk/go/keepclient/discover.go b/sdk/go/keepclient/discover.go index 66eb316665..f3e3960698 100644 --- a/sdk/go/keepclient/discover.go +++ b/sdk/go/keepclient/discover.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "log" + "net/http" "os" "os/signal" "reflect" @@ -22,7 +23,9 @@ func (this *KeepClient) DiscoverKeepServers() error { if this.Arvados.KeepServiceURIs != nil { this.foundNonDiskSvc = true this.replicasPerService = 0 - this.setClientSettingsNonDisk() + if c, ok := this.Client.(*http.Client); ok { + this.setClientSettingsNonDisk(c) + } roots := make(map[string]string) for i, uri := range this.Arvados.KeepServiceURIs { roots[fmt.Sprintf("00000-bi6l4-%015d", i)] = uri @@ -31,14 +34,13 @@ func (this *KeepClient) DiscoverKeepServers() error { return nil } + // ArvadosClient did not provide a services list. Ask API + // server for a list of accessible services. var list svcList - - // Get keep services from api server err := this.Arvados.Call("GET", "keep_services", "", "accessible", nil, &list) if err != nil { return err } - return this.loadKeepServers(list) } @@ -135,10 +137,12 @@ func (this *KeepClient) loadKeepServers(list svcList) error { gatewayRoots[service.Uuid] = url } - if this.foundNonDiskSvc { - this.setClientSettingsNonDisk() - } else { - this.setClientSettingsDisk() + if client, ok := this.Client.(*http.Client); ok { + if this.foundNonDiskSvc { + this.setClientSettingsNonDisk(client) + } else { + this.setClientSettingsDisk(client) + } } this.SetServiceRoots(localRoots, writableLocalRoots, gatewayRoots)