diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-10-01 19:58:40 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-10-01 19:58:40 +0200 |
commit | c9335e0efde84cafdbc878fc4c4504e3ce12b93c (patch) | |
tree | 5331bbc2140855d97ed1453d803af2de6bbd3a77 /container-search | |
parent | f6a19e89f468e6b4603d46763eee2d720de55776 (diff) |
Let handlers dedfine a default request type
Diffstat (limited to 'container-search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java | 7 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java | 15 |
2 files changed, 19 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index bee25fbb47f..80dc7a7b489 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -251,6 +251,9 @@ public class SearchHandler extends LoggingRequestHandler { } } + @Override + public Request.RequestType getRequestType() { return Request.RequestType.READ; } + private int getHttpResponseStatus(com.yahoo.container.jdisc.HttpRequest httpRequest, Result result) { boolean benchmarkOutput = VespaHeaders.benchmarkOutput(httpRequest); if (benchmarkOutput) { @@ -326,9 +329,7 @@ public class SearchHandler extends LoggingRequestHandler { HttpSearchResponse response = new HttpSearchResponse(getHttpResponseStatus(request, result), result, query, renderer, extractTraceNode(query)); - response.setRequestType(Request.RequestType.READ); - if (hostResponseHeaderKey.isPresent()) - response.headers().add(hostResponseHeaderKey.get(), selfHostname); + hostResponseHeaderKey.ifPresent(key -> response.headers().add(key, selfHostname)); if (benchmarking) VespaHeaders.benchmarkOutput(response.headers(), benchmarkCoverage, response.getTiming(), diff --git a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java index 7d03e065fa9..2eb5901b786 100644 --- a/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/handler/test/SearchHandlerTestCase.java @@ -8,6 +8,7 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; import com.yahoo.io.IOUtils; +import com.yahoo.jdisc.Request; import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.net.HostName; import com.yahoo.search.Query; @@ -179,10 +180,24 @@ public class SearchHandlerTestCase { "http://localhost/search/?yql=select%20*%20from%20foo%20where%20bar%20%3E%201453501295%27%3B"); responseHandler.readAll(); assertThat(responseHandler.getStatus(), is(400)); + assertEquals(Request.RequestType.READ, responseHandler.getResponse().getRequestType()); } } + @Test + public void testRequestType() throws Exception { + IOUtils.copyDirectory(new File(testDir, "config_yql"), new File(tempDir), 1); + generateComponentsConfigForActive(); + configurer.reloadConfig(); + SearchHandler newSearchHandler = fetchSearchHandler(configurer); + try (RequestHandlerTestDriver newDriver = new RequestHandlerTestDriver(newSearchHandler)) { + RequestHandlerTestDriver.MockResponseHandler responseHandler = newDriver.sendRequest( + "http://localhost/search/?query=foo"); + responseHandler.readAll(); + assertEquals(Request.RequestType.READ, responseHandler.getResponse().getRequestType()); + } + } // Query handling takes a different code path when a query profile is active, so we test both paths. @Test |