diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-01-24 08:58:43 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-01-24 08:58:43 +0100 |
commit | 40312693a7375fcd96c4ca9723c85ab7f7448862 (patch) | |
tree | d8331c45c7316e3836ed2830d0b132befd2d223a /configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java | |
parent | 6cfd02c6d774a6469dcd2c8b92421b0828090b49 (diff) |
Implement more methods in tester API
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java index 92c04bfb8e7..1418b2a0bcf 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java @@ -7,8 +7,10 @@ import com.yahoo.log.LogLevel; import com.yahoo.yolean.Exceptions; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.utils.URIBuilder; +import org.apache.http.entity.ByteArrayEntity; import java.io.IOException; import java.net.URI; @@ -24,17 +26,7 @@ public class TesterClient { private static final Logger logger = Logger.getLogger(TesterClient.class.getName()); public HttpResponse getStatus(String testerHostname, int port) { - URI testerUri; - try { - testerUri = new URIBuilder() - .setScheme("https") - .setHost(testerHostname) - .setPort(port) - .setPath("/tester/v1/status") - .build(); - } catch (URISyntaxException e) { - throw new IllegalArgumentException(e); - } + URI testerUri = createURI(testerHostname, port, "/tester/v1/status"); return execute(new HttpGet(testerUri), "Failed to get tester status"); } @@ -42,11 +34,7 @@ public class TesterClient { public HttpResponse getLog(String testerHostname, int port, Long after) { URI testerUri; try { - testerUri = new URIBuilder() - .setScheme("https") - .setHost(testerHostname) - .setPort(port) - .setPath("/tester/v1/log") + testerUri = createBuilder(testerHostname, port, "/tester/v1/log") .addParameter("after", String.valueOf(after)) .build(); } catch (URISyntaxException e) { @@ -56,10 +44,19 @@ public class TesterClient { return execute(new HttpGet(testerUri), "Failed to get tester logs"); } - public HttpResponse startTests(String testerHostname, String suite, String config) { - throw new UnsupportedOperationException("Not implemented yet"); + public HttpResponse startTests(String testerHostname, int port, String suite, byte[] config) { + URI testerUri = createURI(testerHostname, port, "/tester/v1/run/" + suite); + HttpPost request = new HttpPost(testerUri); + request.setEntity(new ByteArrayEntity(config)); + + return execute(request, "Failed to start tests"); } + public HttpResponse isTesterReady(String testerHostname, int port) { + URI testerUri = createURI(testerHostname, port, "/status.html"); + + return execute(new HttpGet(testerUri), "/status.html did not return 200 OK"); + } private HttpResponse execute(HttpUriRequest request, String messageIfRequestFails) { // TODO: Change log level to DEBUG @@ -72,4 +69,20 @@ public class TesterClient { } } + private URIBuilder createBuilder(String testerHostname, int port, String path) { + return new URIBuilder() + .setScheme("https") + .setHost(testerHostname) + .setPort(port) + .setPath(path); + } + + private URI createURI(String testerHostname, int port, String path) { + try { + return createBuilder(testerHostname, port, path).build(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException(e); + } + } + } |