summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-01-06 11:07:20 +0100
committerGitHub <noreply@github.com>2020-01-06 11:07:20 +0100
commit44cb0815efd0c477ceeb7058d96d2eb9bfb2e49b (patch)
tree02901869ec87572cfe99b832353dc9c7f46b409b /controller-server
parent85b4bec296463e1ff0d2391cfe7ff3f2d24a266a (diff)
parent07c2b674e2bc61e004bbaf4b9ab979e056d23320 (diff)
Merge pull request #11631 from vespa-engine/hakonhall/add-steps-to-the-run-rest-api
Adds steps to the run REST API
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java7
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java3
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java1
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json13
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-second-part.json14
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json44
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/us-east-3-log-without-first.json35
8 files changed, 112 insertions, 11 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
index 4c61b341c20..83173fc32a7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java
@@ -13,7 +13,6 @@ import com.yahoo.vespa.hosted.controller.deployment.StepRunner;
import org.jetbrains.annotations.TestOnly;
import java.time.Duration;
-import java.time.Instant;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -40,7 +39,8 @@ public class JobRunner extends Maintainer {
}
@TestOnly
- public JobRunner(Controller controller, Duration duration, JobControl jobControl, ExecutorService executors, StepRunner runner) {
+ public JobRunner(Controller controller, Duration duration, JobControl jobControl, ExecutorService executors,
+ StepRunner runner) {
super(controller, duration, jobControl);
this.jobs = controller.jobController();
this.jobs.setRunner(this::advance);
@@ -102,7 +102,7 @@ public class JobRunner extends Maintainer {
StepInfo stepInfo = run.stepInfo(lockedStep.get()).orElseThrow();
if (stepInfo.startTime().isEmpty()) {
- jobs.setStartTimestamp(run.id(), Instant.now(), lockedStep);
+ jobs.setStartTimestamp(run.id(), controller().clock().instant(), lockedStep);
}
runner.run(lockedStep, run.id()).ifPresent(status -> {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java
index 6413be181c3..6e22acd65a1 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java
@@ -445,6 +445,13 @@ class JobControllerApiHandlerHelper {
}
runLog.lastId().ifPresent(id -> detailsObject.setLong("lastId", id));
+ Cursor stepsObject = detailsObject.setObject("steps");
+ run.steps().forEach((step, info) -> {
+ Cursor stepCursor = stepsObject.setObject(step.name());
+ stepCursor.setString("status", info.status().name());
+ info.startTime().ifPresent(startTime -> stepCursor.setLong("startMillis", startTime.toEpochMilli()));
+ });
+
return new SlimeJsonResponse(slime);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java
index 038a2afb306..5b5c6b61357 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTester.java
@@ -12,7 +12,6 @@ import com.yahoo.vespa.hosted.controller.ControllerTester;
import com.yahoo.vespa.hosted.controller.Instance;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.athenz.AthenzDbMock;
-import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationVersion;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterId;
import com.yahoo.vespa.hosted.controller.api.integration.routing.RoutingGeneratorMock;
import com.yahoo.vespa.hosted.controller.api.integration.stubs.MockTesterCloud;
@@ -29,9 +28,7 @@ import com.yahoo.vespa.hosted.controller.maintenance.Upgrader;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.Instant;
-import java.time.LocalDateTime;
import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
import java.time.temporal.TemporalAdjusters;
import java.util.Collections;
import java.util.logging.Logger;
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
index b53a4862192..07888ec1609 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.hosted.controller.restapi.application;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions;
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
index 21ef5035481..e5b2fef2120 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-first-part.json
@@ -59,5 +59,18 @@
},
"active": true,
"lastId": 9,
+ "steps": {
+ "deployReal": {
+ "startMillis": 0,
+ "status": "succeeded"
+ },
+ "installReal": {
+ "startMillis": 0,
+ "status": "unfinished"
+ },
+ "copyVespaLogs": {
+ "status": "unfinished"
+ }
+ },
"status": "running"
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-second-part.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-second-part.json
index 6f0c5c8a384..3248bfa78a1 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-second-part.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-east-1-log-second-part.json
@@ -50,5 +50,19 @@
},
"active": false,
"lastId": 18,
+ "steps": {
+ "deployReal": {
+ "startMillis": 0,
+ "status": "succeeded"
+ },
+ "installReal": {
+ "startMillis": 0,
+ "status": "succeeded"
+ },
+ "copyVespaLogs": {
+ "startMillis": 0,
+ "status": "succeeded"
+ }
+ },
"status": "success"
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
index 993c53b52d8..986109cd1be 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/system-test-details.json
@@ -399,6 +399,48 @@
}
]
},
- "lastId": 75
+ "lastId": 75,
+ "steps": {
+ "deployTester": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "deployReal": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "installTester": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "installReal": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "startTests": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "endTests": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "copyVespaLogs": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "deactivateReal": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "deactivateTester": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ },
+ "report": {
+ "status": "succeeded",
+ "startMillis": "(ignore)"
+ }
+ }
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/us-east-3-log-without-first.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/us-east-3-log-without-first.json
index e344ef07762..4e501410324 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/us-east-3-log-without-first.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/us-east-3-log-without-first.json
@@ -1,6 +1,4 @@
{
- "active": false,
- "status": "deploymentFailed",
"log": {
"deployTester": [
{
@@ -17,5 +15,36 @@
}
]
},
- "lastId": 2
+ "active": false,
+ "lastId": 2,
+ "steps": {
+ "startTests": {
+ "status": "unfinished"
+ },
+ "deployTester": {
+ "startMillis": 1000,
+ "status": "failed"
+ },
+ "report": {
+ "startMillis": 1000,
+ "status": "succeeded"
+ },
+ "installTester": {
+ "status": "unfinished"
+ },
+ "deployReal": {
+ "status": "unfinished"
+ },
+ "installReal": {
+ "status": "unfinished"
+ },
+ "deactivateTester": {
+ "startMillis": 1000,
+ "status": "succeeded"
+ },
+ "endTests": {
+ "status": "unfinished"
+ }
+ },
+ "status": "deploymentFailed"
}