From ce5e69f4b9ef71c9e7ee688827861eeeabaf200f Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 10 Sep 2018 16:49:18 -0400 Subject: [PATCH] 14087: Check for remote clusters before searching Added some more comments about the implementation as well. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- lib/controller/federation.go | 2 +- lib/controller/federation_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/controller/federation.go b/lib/controller/federation.go index 29280dac4b..60178beec4 100644 --- a/lib/controller/federation.go +++ b/lib/controller/federation.go @@ -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 && diff --git a/lib/controller/federation_test.go b/lib/controller/federation_test.go index 0cb784abf3..1d113065ee 100644 --- a/lib/controller/federation_test.go +++ b/lib/controller/federation_test.go @@ -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) { -- 2.30.2