[ARVADOS] created: 879ba08f9cba098577e520235bfbbbeffaf4b81d
git at public.curoverse.com
git at public.curoverse.com
Mon Mar 23 13:50:28 EDT 2015
at 879ba08f9cba098577e520235bfbbbeffaf4b81d (commit)
commit 879ba08f9cba098577e520235bfbbbeffaf4b81d
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Mon Mar 23 13:54:07 2015 -0400
5536: Keepproxy retry keep server discovery on error or empty list.
diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go
index b8c30d1..581f7f4 100644
--- a/services/keepproxy/keepproxy.go
+++ b/services/keepproxy/keepproxy.go
@@ -134,16 +134,27 @@ type ApiTokenCache struct {
// Refresh the keep service list every five minutes.
func RefreshServicesList(kc *keepclient.KeepClient) {
+ var sleeptime time.Duration
for {
- time.Sleep(300 * time.Second)
oldservices := kc.ServiceRoots()
- kc.DiscoverKeepServers()
- newservices := kc.ServiceRoots()
- s1 := fmt.Sprint(oldservices)
- s2 := fmt.Sprint(newservices)
- if s1 != s2 {
- log.Printf("Updated server list to %v", s2)
+ newservices, err := kc.DiscoverKeepServers()
+ if err == nil && len(newservices) > 0 {
+ s1 := fmt.Sprint(oldservices)
+ s2 := fmt.Sprint(newservices)
+ if s1 != s2 {
+ log.Printf("Updated server list to %v", s2)
+ }
+ sleeptime = 300 * time.Second
+ } else {
+ // There was an error, or the list is empty, so wait 3 seconds and try again.
+ if err != nil {
+ log.Printf("Error retrieving server list: %v", err)
+ } else {
+ log.Printf("Retrieved an empty server list")
+ }
+ sleeptime = 3 * time.Second
}
+ time.Sleep(sleeptime)
}
}
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list