[ARVADOS] updated: 1.1.0-44-g2177ebf

Git user git at public.curoverse.com
Wed Oct 18 10:03:35 EDT 2017


Summary of changes:
 build/run-tests.sh               |  2 +-
 sdk/go/health/aggregator.go      |  9 ++++++--
 sdk/go/health/aggregator_test.go | 46 ++++++++++++++++++++++++----------------
 3 files changed, 36 insertions(+), 21 deletions(-)

       via  2177ebfe318b33eafcc95607a48039a887047730 (commit)
      from  2e087bc0a6231762cf9b7b6d829000041cf28e16 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 2177ebfe318b33eafcc95607a48039a887047730
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date:   Tue Oct 17 15:49:14 2017 -0400

    11260: Fix tests.
    
    refs #11260
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>

diff --git a/build/run-tests.sh b/build/run-tests.sh
index da27487..63c8801 100755
--- a/build/run-tests.sh
+++ b/build/run-tests.sh
@@ -792,7 +792,7 @@ gostuff=(
     sdk/go/arvadosclient
     sdk/go/blockdigest
     sdk/go/dispatch
-#    sdk/go/health
+    sdk/go/health
     sdk/go/httpserver
     sdk/go/manifest
     sdk/go/streamer
diff --git a/sdk/go/health/aggregator.go b/sdk/go/health/aggregator.go
index 334584b..297a861 100644
--- a/sdk/go/health/aggregator.go
+++ b/sdk/go/health/aggregator.go
@@ -3,6 +3,7 @@ package health
 import (
 	"context"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"net"
 	"net/http"
@@ -199,10 +200,14 @@ func (agg *Aggregator) ping(url string, cluster *arvados.Cluster) (result CheckR
 	err = json.NewDecoder(resp.Body).Decode(&result.Response)
 	if err != nil {
 		err = fmt.Errorf("cannot decode response: %s", err)
-		return
 	} else if resp.StatusCode != http.StatusOK {
 		err = fmt.Errorf("HTTP %d %s", resp.StatusCode, resp.Status)
-		return
+	} else if h, _ := result.Response["health"].(string); h != "OK" {
+		if e, ok := result.Response["error"].(string); ok && e != "" {
+			err = errors.New(e)
+		} else {
+			err = fmt.Errorf("health=%q in ping response", h)
+		}
 	}
 	return
 }
diff --git a/sdk/go/health/aggregator_test.go b/sdk/go/health/aggregator_test.go
index 048886a..7e601f2 100644
--- a/sdk/go/health/aggregator_test.go
+++ b/sdk/go/health/aggregator_test.go
@@ -2,8 +2,6 @@ package health
 
 import (
 	"encoding/json"
-	"fmt"
-	"net"
 	"net/http"
 	"net/http/httptest"
 	"strings"
@@ -85,7 +83,7 @@ func (s *AggregatorSuite) TestUnhealthy(c *check.C) {
 	srv, listen := s.stubServer(&unhealthyHandler{})
 	defer srv.Close()
 	s.handler.Config.Clusters["zzzzz"].SystemNodes["localhost"] = arvados.SystemNode{
-		Keepstore: arvados.Keepstore{Listen: listen},
+		Keepstore: arvados.SystemServiceInstance{Listen: listen},
 	}
 	s.handler.ServeHTTP(s.resp, s.req)
 	s.checkUnhealthy(c)
@@ -104,38 +102,50 @@ func (*healthyHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) {
 func (s *AggregatorSuite) TestHealthy(c *check.C) {
 	srv, listen := s.stubServer(&healthyHandler{})
 	defer srv.Close()
-	_, port, _ := net.SplitHostPort(listen)
 	s.handler.Config.Clusters["zzzzz"].SystemNodes["localhost"] = arvados.SystemNode{
-		Keepstore: arvados.Keepstore{Listen: listen},
+		Keepproxy:   arvados.SystemServiceInstance{Listen: listen},
+		Keepstore:   arvados.SystemServiceInstance{Listen: listen},
+		Keepweb:     arvados.SystemServiceInstance{Listen: listen},
+		Nodemanager: arvados.SystemServiceInstance{Listen: listen},
+		RailsAPI:    arvados.SystemServiceInstance{Listen: listen},
+		Websocket:   arvados.SystemServiceInstance{Listen: listen},
+		Workbench:   arvados.SystemServiceInstance{Listen: listen},
 	}
 	s.handler.ServeHTTP(s.resp, s.req)
 	resp := s.checkOK(c)
-	ep := resp.Checks[fmt.Sprintf("keepstore+http://localhost:%d/_health/ping", port)]
+	svc := "keepstore+http://localhost" + listen + "/_health/ping"
+	c.Logf("%#v", resp)
+	ep := resp.Checks[svc]
 	c.Check(ep.Health, check.Equals, "OK")
-	c.Check(ep.Status, check.Equals, 200)
+	c.Check(ep.HTTPStatusCode, check.Equals, 200)
 }
 
 func (s *AggregatorSuite) TestHealthyAndUnhealthy(c *check.C) {
 	srvH, listenH := s.stubServer(&healthyHandler{})
 	defer srvH.Close()
-	_, portH, _ := net.SplitHostPort(listenH)
 	srvU, listenU := s.stubServer(&unhealthyHandler{})
 	defer srvU.Close()
-	_, portU, _ := net.SplitHostPort(listenU)
 	s.handler.Config.Clusters["zzzzz"].SystemNodes["localhost"] = arvados.SystemNode{
-		Keepstore: arvados.Keepstore{Listen: listenH},
+		Keepproxy:   arvados.SystemServiceInstance{Listen: listenH},
+		Keepstore:   arvados.SystemServiceInstance{Listen: listenH},
+		Keepweb:     arvados.SystemServiceInstance{Listen: listenH},
+		Nodemanager: arvados.SystemServiceInstance{Listen: listenH},
+		RailsAPI:    arvados.SystemServiceInstance{Listen: listenH},
+		Websocket:   arvados.SystemServiceInstance{Listen: listenH},
+		Workbench:   arvados.SystemServiceInstance{Listen: listenH},
 	}
 	s.handler.Config.Clusters["zzzzz"].SystemNodes["127.0.0.1"] = arvados.SystemNode{
-		Keepstore: arvados.Keepstore{Listen: listenU},
+		Keepstore: arvados.SystemServiceInstance{Listen: listenU},
 	}
 	s.handler.ServeHTTP(s.resp, s.req)
 	resp := s.checkUnhealthy(c)
-	ep := resp.Checks[fmt.Sprintf("keepstore+http://localhost:%d/_health/ping", portH)]
+	ep := resp.Checks["keepstore+http://localhost"+listenH+"/_health/ping"]
 	c.Check(ep.Health, check.Equals, "OK")
-	c.Check(ep.Status, check.Equals, 200)
-	ep = resp.Checks[fmt.Sprintf("keepstore+http://127.0.0.1:%d/_health/ping", portU)]
+	c.Check(ep.HTTPStatusCode, check.Equals, 200)
+	ep = resp.Checks["keepstore+http://127.0.0.1"+listenU+"/_health/ping"]
 	c.Check(ep.Health, check.Equals, "ERROR")
-	c.Check(ep.Status, check.Equals, 200)
+	c.Check(ep.HTTPStatusCode, check.Equals, 200)
+	c.Logf("%#v", ep)
 }
 
 func (s *AggregatorSuite) checkError(c *check.C) {
@@ -179,13 +189,13 @@ func (s *AggregatorSuite) TestPingTimeout(c *check.C) {
 	srv, listen := s.stubServer(&slowHandler{})
 	defer srv.Close()
 	s.handler.Config.Clusters["zzzzz"].SystemNodes["localhost"] = arvados.SystemNode{
-		Keepstore: arvados.Keepstore{Listen: listen},
+		Keepstore: arvados.SystemServiceInstance{Listen: listen},
 	}
 	s.handler.ServeHTTP(s.resp, s.req)
 	resp := s.checkUnhealthy(c)
-	ep := resp.Checks["localhost/keepstore/_health/ping"]
+	ep := resp.Checks["keepstore+http://localhost"+listen+"/_health/ping"]
 	c.Check(ep.Health, check.Equals, "ERROR")
-	c.Check(ep.Status, check.Equals, 0)
+	c.Check(ep.HTTPStatusCode, check.Equals, 0)
 	rt, err := ep.ResponseTime.Float64()
 	c.Check(err, check.IsNil)
 	c.Check(rt > 0.005, check.Equals, true)

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list