Merge branch '11537-keepproxy-loop'
[arvados.git] / sdk / go / keepclient / discover.go
index 66eb3166656fb42be75a534b7098d5241444515e..f3e39606980b79b71ddb62ec7d61d90f9b6d0056 100644 (file)
@@ -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)