diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-12-10 13:17:44 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-12-10 13:17:44 +0100 |
commit | bf127fe126f7c6e3b7924bd64fabc955fccbc7c3 (patch) | |
tree | d190ba2cc8b7108f2c418da42f53e96a7ddbf6a9 | |
parent | 1e95ab58443cfe8065832aee7666a2dfbd2cfdd6 (diff) |
Use double progress [0, 1] instead of string
11 files changed, 21 insertions, 23 deletions
diff --git a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java index 3337d30e34a..56bacea5cb6 100644 --- a/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java +++ b/clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java @@ -82,7 +82,7 @@ public class ReindexingV1ApiHandler extends ThreadedHttpRequestHandler { Cursor statusObject = documentTypesObject.setObject(type.getName()); statusObject.setLong("startedMillis", status.startedAt().toEpochMilli()); status.endedAt().ifPresent(endedAt -> statusObject.setLong("endedMillis", endedAt.toEpochMilli())); - status.progress().ifPresent(progress -> statusObject.setString("progress", String.format("%.2f%%", progress.percentFinished()))); + status.progress().ifPresent(progress -> statusObject.setDouble("progress", progress.percentFinished() * 1e-2)); statusObject.setString("state", toString(status.state())); status.message().ifPresent(message -> statusObject.setString("message", message)); }); diff --git a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java index d9432dab2c2..e00b10b80bd 100644 --- a/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java +++ b/clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java @@ -62,7 +62,7 @@ class ReindexingV1ApiTest { "\"music\":{" + "\"startedMillis\":0," + "\"endedMillis\":123," + - "\"progress\":\"100.00%\"," + + "\"progress\":1.0," + "\"state\":\"failed\"," + "\"message\":\"ヽ(。_°)ノ\"}" + "}" + diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ClusterReindexing.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ClusterReindexing.java index 4b7148463f9..f162007b0e4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ClusterReindexing.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ClusterReindexing.java @@ -54,9 +54,9 @@ public class ClusterReindexing { private final Instant endedAt; private final State state; private final String message; - private final String progress; + private final Double progress; - public Status(Instant startedAt, Instant endedAt, State state, String message, String progress) { + public Status(Instant startedAt, Instant endedAt, State state, String message, Double progress) { this.startedAt = Objects.requireNonNull(startedAt); this.endedAt = endedAt; this.state = state; @@ -68,7 +68,7 @@ public class ClusterReindexing { public Optional<Instant> endedAt() { return Optional.ofNullable(endedAt); } public Optional<State> state() { return Optional.ofNullable(state); } public Optional<String> message() { return Optional.ofNullable(message); } - public Optional<String> progress() { return Optional.ofNullable(progress); } + public Optional<Double> progress() { return Optional.ofNullable(progress); } @Override public boolean equals(Object o) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java index 0124b6822f0..1ced0c4ce4f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java @@ -114,16 +114,16 @@ public class DefaultClusterReindexingStatusClient implements ClusterReindexingSt Instant endedMillis = Optional.ofNullable(statusJson.get("endedMillis")) .map(json -> Instant.ofEpochMilli(json.longValue())) .orElse(null); - String progressToken = Optional.ofNullable(statusJson.get("progress")) - .map(JsonNode::textValue) - .orElse(null); + Double progress = Optional.ofNullable(statusJson.get("progress")) + .map(JsonNode::doubleValue) + .orElse(null); ClusterReindexing.State state = Optional.ofNullable(statusJson.get("state")) .map(json -> ClusterReindexing.State.fromString(json.textValue())) .orElse(null); String message = Optional.ofNullable(statusJson.get("message")) .map(JsonNode::textValue) .orElse(null); - documentStatuses.put(type, new ClusterReindexing.Status(startedMillis, endedMillis, state, message, progressToken)); + documentStatuses.put(type, new ClusterReindexing.Status(startedMillis, endedMillis, state, message, progress)); } clusters.put(clusterName, new ClusterReindexing(documentStatuses)); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java index 0c7d60c5313..900061949f4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java @@ -483,7 +483,7 @@ public class ApplicationHandler extends HttpHandler { status.endedAt().ifPresent(endedAt -> object.setLong("endedMillis", endedAt.toEpochMilli())); status.state().map(ClusterReindexing.State::asString).ifPresent(state -> object.setString("state", state)); status.message().ifPresent(message -> object.setString("message", message)); - status.progress().ifPresent(progress -> object.setString("progress", progress)); + status.progress().ifPresent(progress -> object.setDouble("progress", progress)); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClientTest.java index 82e1bd96373..7b8d5d9cc07 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClientTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClientTest.java @@ -5,9 +5,7 @@ import com.yahoo.config.model.api.HostInfo; import com.yahoo.config.model.api.Model; import com.yahoo.config.model.api.PortInfo; import com.yahoo.config.model.api.ServiceInfo; -import com.yahoo.documentapi.ProgressToken; import com.yahoo.vespa.config.server.modelfactory.ModelResult; -import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -63,7 +61,7 @@ public class DefaultClusterReindexingStatusClientTest { " \"artist\": {" + " \"startedMillis\":50," + " \"endedMillis\":150," + - " \"progress\":\"half-done\"," + + " \"progress\": 0.5," + " \"state\": \"" + ClusterReindexing.State.SUCCESSFUL.asString() + "\"," + " \"message\":\"success\"" + " }" + @@ -84,7 +82,7 @@ public class DefaultClusterReindexingStatusClientTest { Instant.ofEpochMilli(150), ClusterReindexing.State.SUCCESSFUL, "success", - "half-done")))); + 0.5)))); Map<String, ClusterReindexing> result = client.getReindexingStatus(app); assertEquals(expected, result); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java index 3ca21a46d12..f2558fa50b8 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java @@ -455,7 +455,7 @@ public class ApplicationHandlerTest { now.plusSeconds(2), ClusterReindexing.State.FAILED, "message", - "some"))); + 0.1))); assertJsonEquals(getRenderedString(new ReindexingResponse(applicationReindexing, Map.of("boo", clusterReindexing, "moo", clusterReindexing))), @@ -476,7 +476,7 @@ public class ApplicationHandlerTest { " \"endedMillis\": 125456,\n" + " \"state\": \"failed\",\n" + " \"message\": \"message\",\n" + - " \"progress\": \"some\"\n" + + " \"progress\": 0.1\n" + " }\n" + " }\n" + " },\n" + @@ -498,7 +498,7 @@ public class ApplicationHandlerTest { " \"endedMillis\": 125456,\n" + " \"state\": \"failed\",\n" + " \"message\": \"message\",\n" + - " \"progress\": \"some\"\n" + + " \"progress\": 0.1\n" + " },\n" + " \"bax\": {\n" + " \"startedMillis\": 123456\n" + diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java index 868d251d7ee..e143cdd6d9e 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java @@ -120,9 +120,9 @@ public class ApplicationReindexing { private final Instant endedAt; private final State state; private final String message; - private final String progress; + private final Double progress; - public Status(Instant readyAt, Instant startedAt, Instant endedAt, State state, String message, String progress) { + public Status(Instant readyAt, Instant startedAt, Instant endedAt, State state, String message, Double progress) { this.readyAt = readyAt; this.startedAt = startedAt; this.endedAt = endedAt; @@ -140,7 +140,7 @@ public class ApplicationReindexing { public Optional<Instant> endedAt() { return Optional.ofNullable(endedAt); } public Optional<State> state() { return Optional.ofNullable(state); } public Optional<String> message() { return Optional.ofNullable(message); } - public Optional<String> progress() { return Optional.ofNullable(progress); } + public Optional<Double> progress() { return Optional.ofNullable(progress); } @Override public boolean equals(Object o) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index be51f39374b..22f92006c6b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -1604,7 +1604,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { status.endedAt().ifPresent(endedAt -> statusObject.setLong("endedAtMillis", endedAt.toEpochMilli())); status.state().map(ApplicationApiHandler::toString).ifPresent(state -> statusObject.setString("state", state)); status.message().ifPresent(message -> statusObject.setString("message", message)); - status.progress().ifPresent(progress -> statusObject.setString("progress", progress)); + status.progress().ifPresent(progress -> statusObject.setDouble("progress", progress)); } private static String toString(ApplicationReindexing.State state) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java index 2b9bad4899f..753b47e544a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java @@ -436,7 +436,7 @@ public class ConfigServerMock extends AbstractComponent implements ConfigServer Instant.ofEpochMilli(567), ApplicationReindexing.State.FAILED, "(#`д´)ノ", - "some")))))); + 0.1)))))); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index d303d1a9b83..e0a4141480d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -608,7 +608,7 @@ public class ApplicationApiTest extends ControllerContainerTest { // GET to get reindexing status tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/reindexing", GET) .userIdentity(USER_ID), - "{\"enabled\":true,\"status\":{\"readyAtMillis\":123},\"clusters\":[{\"name\":\"cluster\",\"status\":{\"readyAtMillis\":234},\"pending\":[{\"type\":\"type\",\"requiredGeneration\":100}],\"ready\":[{\"type\":\"type\",\"readyAtMillis\":345,\"startedAtMillis\":456,\"endedAtMillis\":567,\"state\":\"failed\",\"message\":\"(#`д´)ノ\",\"progress\":\"some\"}]}]}"); + "{\"enabled\":true,\"status\":{\"readyAtMillis\":123},\"clusters\":[{\"name\":\"cluster\",\"status\":{\"readyAtMillis\":234},\"pending\":[{\"type\":\"type\",\"requiredGeneration\":100}],\"ready\":[{\"type\":\"type\",\"readyAtMillis\":345,\"startedAtMillis\":456,\"endedAtMillis\":567,\"state\":\"failed\",\"message\":\"(#`д´)ノ\",\"progress\":0.1}]}]}"); // POST a 'restart application' command tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/environment/prod/region/us-central-1/instance/instance1/restart", POST) |