diff options
author | Harald Musum <musum@oath.com> | 2018-05-14 14:19:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-14 14:19:53 +0200 |
commit | 1559d57787d3e025e2ae5dbdebe744bba19df3a5 (patch) | |
tree | 6e97f1589baf113a52af8734d16d95f09fab5f2d | |
parent | 27ee37a86f0a22e6142fab65a8bfd316c7c3e36e (diff) | |
parent | 4aebc88679563061ac37f3b841cd206735032e74 (diff) |
Merge pull request #5811 from vespa-engine/hmusum/add-fields-to-convergence-response
Add some fields to config convergence response
2 files changed, 33 insertions, 13 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceChecker.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceChecker.java index 925f8324b30..22a5450b184 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceChecker.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceChecker.java @@ -144,8 +144,10 @@ public class ApplicationConvergenceChecker extends AbstractComponent { service.setString("type", s.getServiceType()); service.setString("url", uri.toString() + "/" + hostName + ":" + statePort); } - debug = object.setObject("debug"); object.setString("url", uri.toString()); + object.setLong("wantedGeneration", wantedGeneration); + // TODO: Remove debug when clients are not using it anymore + debug = object.setObject("debug"); debug.setLong("wantedGeneration", wantedGeneration); } } @@ -155,8 +157,11 @@ public class ApplicationConvergenceChecker extends AbstractComponent { private ServiceResponse(int status, URI uri, String hostname, Long wantedGeneration) { super(status); - debug = object.setObject("debug"); object.setString("url", uri.toString()); + object.setString("host", hostname); + object.setLong("wantedGeneration", wantedGeneration); + // TODO: Remove debug when clients are not using it anymore + debug = object.setObject("debug"); debug.setString("host", hostname); debug.setLong("wantedGeneration", wantedGeneration); } @@ -164,12 +169,16 @@ public class ApplicationConvergenceChecker extends AbstractComponent { static ServiceResponse createOkResponse(URI uri, String hostname, Long wantedGeneration, Long currentGeneration, boolean converged) { ServiceResponse serviceResponse = new ServiceResponse(200, uri, hostname, wantedGeneration); serviceResponse.object.setBool("converged", converged); + serviceResponse.object.setLong("currentGeneration", currentGeneration); + // TODO: Remove debug when clients are not using it anymore serviceResponse.debug.setLong("currentGeneration", currentGeneration); return serviceResponse; } static ServiceResponse createHostNotFoundInAppResponse(URI uri, String hostname, Long wantedGeneration) { ServiceResponse serviceResponse = new ServiceResponse(410, uri, hostname, wantedGeneration); + serviceResponse.object.setString("problem", "Host:port (service) no longer part of application, refetch list of services."); + // TODO: Remove debug when clients are not using it anymore serviceResponse.debug.setString("problem", "Host:port (service) no longer part of application, refetch list of services."); return serviceResponse; } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceCheckerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceCheckerTest.java index 1fa164ad4f6..1d692e8f78f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceCheckerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/ApplicationConvergenceCheckerTest.java @@ -41,25 +41,29 @@ public class ApplicationConvergenceCheckerTest { public TemporaryFolder folder = new TemporaryFolder(); @Before - public void setup() throws IOException, SAXException, InterruptedException { + public void setup() { Model mockModel = MockModel.createContainer("localhost", 1337); application = new Application(mockModel, new ServerCache(), 3, Version.fromIntValues(0, 0, 0), MetricUpdater.createTestUpdater(), appId); } @Test - public void converge() throws IOException, SAXException { + public void converge() throws IOException { ApplicationConvergenceChecker checker = new ApplicationConvergenceChecker( (client, serviceUri) -> () -> string2json("{\"config\":{\"generation\":3}}")); HttpResponse serviceListResponse = checker.serviceListToCheckForConfigConvergence(application, URI.create("http://foo:234/serviceconverge")); assertThat(serviceListResponse.getStatus(), is(200)); - assertEquals("{\"services\":[" + - "{\"host\":\"localhost\"," + + assertEquals(//"\"wantedGeneration\":3," + + // "\"debug\":{\"wantedGeneration\":3}," + + "{\"services\":[" + + "{" + + "\"host\":\"localhost\"," + "\"port\":1337," + "\"type\":\"container\"," + "\"url\":\"http://foo:234/serviceconverge/localhost:1337\"}]," + - "\"debug\":{\"wantedGeneration\":3}," + - "\"url\":\"http://foo:234/serviceconverge\"}", + "\"url\":\"http://foo:234/serviceconverge\"," + + "\"wantedGeneration\":3," + + "\"debug\":{\"wantedGeneration\":3}}", SessionHandlerTest.getRenderedString(serviceListResponse)); ServiceResponse serviceResponse = checker.serviceConvergenceCheck(application, @@ -67,23 +71,30 @@ public class ApplicationConvergenceCheckerTest { URI.create("http://foo:234/serviceconverge/localhost:1337")); assertThat(serviceResponse.getStatus(), is(200)); assertEquals("{" + + "\"url\":\"http://foo:234/serviceconverge/localhost:1337\"," + + "\"host\":\"localhost:1337\"," + + "\"wantedGeneration\":3," + "\"debug\":{" + "\"host\":\"localhost:1337\"," + "\"wantedGeneration\":3," + "\"currentGeneration\":3}," + - "\"url\":\"http://foo:234/serviceconverge/localhost:1337\"," + - "\"converged\":true}", - SessionHandlerTest.getRenderedString(serviceResponse)); + "\"converged\":true," + + "\"currentGeneration\":3}", + SessionHandlerTest.getRenderedString(serviceResponse)); ServiceResponse hostMissingResponse = checker.serviceConvergenceCheck(application, "notPresent:1337", URI.create("http://foo:234/serviceconverge/notPresent:1337")); assertThat(hostMissingResponse.getStatus(), is(410)); - assertEquals("{\"debug\":{" + + assertEquals("{" + + "\"url\":\"http://foo:234/serviceconverge/notPresent:1337\"," + + "\"host\":\"notPresent:1337\"," + + "\"wantedGeneration\":3," + + "\"debug\":{" + "\"host\":\"notPresent:1337\"," + "\"wantedGeneration\":3," + "\"problem\":\"Host:port (service) no longer part of application, refetch list of services.\"}," + - "\"url\":\"http://foo:234/serviceconverge/notPresent:1337\"}", + "\"problem\":\"Host:port (service) no longer part of application, refetch list of services.\"}", SessionHandlerTest.getRenderedString(hostMissingResponse)); } |