summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-12-10 13:23:06 +0100
committerGitHub <noreply@github.com>2020-12-10 13:23:06 +0100
commitbdf02b5a355e14d83831d09964f78f9b6becefdc (patch)
treef60c38a7cac8c758f51fba9128a9826b88972f97
parenta4b297165caca7c8875e560a83614446c31c7b16 (diff)
parentbf127fe126f7c6e3b7924bd64fabc955fccbc7c3 (diff)
Merge pull request #15772 from vespa-engine/jonmv/percentwise-progress-in-api
Use percent complete instead of actual progress token
-rw-r--r--clustercontroller-reindexer/src/main/java/ai/vespa/reindexing/http/ReindexingV1ApiHandler.java2
-rw-r--r--clustercontroller-reindexer/src/test/java/ai/vespa/reindexing/http/ReindexingV1ApiTest.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/ClusterReindexing.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandler.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClientTest.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java6
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ConfigServerMock.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java2
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java2
12 files changed, 22 insertions, 24 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 b1c0d012325..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", progress.serializeToString()));
+ 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 b8f62050347..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\":\"" + new ProgressToken().serializeToString() + "\"," +
+ "\"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)
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
index 29db9e318d8..ca32c5722e6 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java
@@ -90,7 +90,7 @@ public class DocumentProtocol implements Protocol {
* longer be guaranteed.
*/
- /** Used by policies to indicate an inappropriate message. */
+ /** Used by policies to indicate an inappropriate message. */
public static final int ERROR_MESSAGE_IGNORED = ErrorCode.APP_FATAL_ERROR + 1;
/** Used for error policy when policy creation failed. */