Merge branch '18078-reacquire-fuse-lock' into main refs #18078
[arvados.git] / sdk / go / keepclient / discover.go
index 62936e71831fb1fa055b213fac470f2adeb5ea16..5eafbbe339a9d7d4baa29081a049aa5e924ac61f 100644 (file)
@@ -16,10 +16,10 @@ import (
        "syscall"
        "time"
 
-       "git.curoverse.com/arvados.git/sdk/go/arvadosclient"
+       "git.arvados.org/arvados.git/sdk/go/arvadosclient"
 )
 
-// ClearCache clears the Keep service discovery cache.
+// RefreshServiceDiscovery clears the Keep service discovery cache.
 func RefreshServiceDiscovery() {
        var wg sync.WaitGroup
        defer wg.Wait()
@@ -27,15 +27,16 @@ func RefreshServiceDiscovery() {
        defer svcListCacheMtx.Unlock()
        for _, ent := range svcListCache {
                wg.Add(1)
+               clear := ent.clear
                go func() {
-                       ent.clear <- struct{}{}
+                       clear <- struct{}{}
                        wg.Done()
                }()
        }
 }
 
-// ClearCacheOnSIGHUP installs a signal handler that calls
-// ClearCache when SIGHUP is received.
+// RefreshServiceDiscoveryOnSIGHUP installs a signal handler that calls
+// RefreshServiceDiscovery when SIGHUP is received.
 func RefreshServiceDiscoveryOnSIGHUP() {
        svcListCacheMtx.Lock()
        defer svcListCacheMtx.Unlock()
@@ -137,6 +138,10 @@ func (kc *KeepClient) discoverServices() error {
                return nil
        }
 
+       if kc.Arvados.ApiServer == "" {
+               return fmt.Errorf("Arvados client is not configured (target API host is not set). Maybe env var ARVADOS_API_HOST should be set first?")
+       }
+
        svcListCacheMtx.Lock()
        cacheEnt, ok := svcListCache[kc.Arvados.ApiServer]
        if !ok {