14087: Check for remote clusters before searching
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 10 Sep 2018 20:49:18 +0000 (16:49 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Tue, 11 Sep 2018 15:07:32 +0000 (11:07 -0400)
Added some more comments about the implementation as well.

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

lib/controller/federation.go
lib/controller/federation_test.go

index 29280dac4b9b77db4416770a546e3ed7d25096cb..60178beec41b840b37988576a0f988992e28a9dd 100644 (file)
@@ -233,7 +233,7 @@ func (s *searchRemoteClusterForPDH) filterRemoteClusterResponse(resp *http.Respo
 
 func (h *collectionFederatedRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
        m := collectionByPDHRe.FindStringSubmatch(req.URL.Path)
-       if len(m) == 2 {
+       if len(m) == 2 && len(h.handler.Cluster.RemoteClusters) > 0 {
                bearer := req.Header.Get("Authorization")
                if strings.HasPrefix(bearer, "Bearer v2/") &&
                        len(bearer) > 10 &&
index 0cb784abf3d57a520baf0cb1e7fdb0c77f967b07..1d113065eeae934de06e861f3a0cd82e212bf074 100644 (file)
@@ -436,7 +436,7 @@ func (s *FederationSuite) TestGetCollectionByPDHError(c *check.C) {
        resp := s.testRequest(req)
        defer resp.Body.Close()
 
-       c.Check(resp.StatusCode, check.Equals, http.StatusBadGateway)
+       c.Check(resp.StatusCode, check.Equals, http.StatusNotFound)
 }
 
 func (s *FederationSuite) TestSaltedTokenGetCollectionByPDH(c *check.C) {