summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java8
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java7
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java17
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializerTest.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java8
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json344
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-runs.json70
7 files changed, 274 insertions, 185 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index e984edca7db..ab4d05af0e9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -27,6 +27,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.configserver.NoInstance
import com.yahoo.vespa.hosted.controller.api.integration.configserver.PrepareResponse;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.ApplicationStore;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.ArtifactRepository;
+import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType;
import com.yahoo.vespa.hosted.controller.api.integration.dns.NameService;
import com.yahoo.vespa.hosted.controller.api.integration.dns.Record;
import com.yahoo.vespa.hosted.controller.api.integration.dns.RecordData;
@@ -38,7 +39,6 @@ import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.ApplicationPackage;
import com.yahoo.vespa.hosted.controller.application.ApplicationVersion;
import com.yahoo.vespa.hosted.controller.application.Deployment;
-import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType;
import com.yahoo.vespa.hosted.controller.application.JobList;
import com.yahoo.vespa.hosted.controller.application.JobStatus;
import com.yahoo.vespa.hosted.controller.application.JobStatus.JobRun;
@@ -57,6 +57,8 @@ import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.time.Clock;
+import java.time.Duration;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -115,9 +117,13 @@ public class ApplicationController {
this.rotationRepository = new RotationRepository(rotationsConfig, this, curator);
this.deploymentTrigger = new DeploymentTrigger(controller, buildService, clock);
+ Instant start = clock.instant();
+ int count = 0;
for (Application application : curator.readApplications()) {
lockIfPresent(application.id(), this::store);
+ count++;
}
+ log.log(Level.INFO, String.format("Wrote %d applications in %s", count, Duration.between(start, clock.instant())));
}
/** Returns the application with the given id, or null if it is not present */
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java
index 5f456553120..20847f904aa 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java
@@ -18,6 +18,8 @@ import com.yahoo.vespa.hosted.controller.tenant.Contact;
import com.yahoo.vespa.hosted.controller.tenant.Tenant;
import com.yahoo.vespa.hosted.controller.tenant.UserTenant;
+import java.time.Duration;
+import java.time.Instant;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
@@ -25,6 +27,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
+import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -50,6 +53,8 @@ public class TenantController {
this.organization = Objects.requireNonNull(organization, "organization must be non-null");
// Write all tenants to ensure persisted data uses latest serialization format
+ Instant start = controller.clock().instant();
+ int count = 0;
for (Tenant tenant : curator.readTenants()) {
try (Lock lock = lock(tenant.name())) {
if (tenant instanceof AthenzTenant) {
@@ -60,7 +65,9 @@ public class TenantController {
throw new IllegalArgumentException("Unknown tenant type: " + tenant.getClass().getSimpleName());
}
}
+ count++;
}
+ log.log(Level.INFO, String.format("Wrote %d tenants in %s", count, Duration.between(start, controller.clock().instant())));
}
/** Returns a list of all known tenants sorted by name */
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 32d62d00e20..8a2664e61a7 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
@@ -142,13 +142,13 @@ class JobControllerApiHandlerHelper {
lastVespa = version;
Version lastPlatform = lastVespa.versionNumber();
- lastPlatformObject.setString("version", lastPlatform.toString());
+ lastPlatformObject.setString("platform", lastPlatform.toString());
lastPlatformObject.setLong("at", lastVespa.committedAt().toEpochMilli());
long completed = steps.productionJobs().stream().filter(type -> controller.applications().deploymentTrigger().isComplete(Change.of(lastPlatform), application, type)).count();
if (Optional.of(lastPlatform).equals(change.platform()))
- lastPlatformObject.setString("deploying", completed + " of " + steps.productionJobs().size());
+ lastPlatformObject.setString("deploying", completed + " of " + steps.productionJobs().size() + "complete");
else if (completed == steps.productionJobs().size())
- lastPlatformObject.setString("completed", completed + " of " + steps.productionJobs().size());
+ lastPlatformObject.setString("completed", completed + " of " + steps.productionJobs().size() + "complete");
else if ( ! application.deploymentSpec().canUpgradeAt(controller.clock().instant())) {
lastPlatformObject.setString("blocked", application.deploymentSpec().changeBlocker().stream()
.filter(blocker -> blocker.blocksVersions())
@@ -162,7 +162,7 @@ class JobControllerApiHandlerHelper {
private static void lastApplicationToSlime(Cursor lastApplicationObject, Application application, Change change, DeploymentSteps steps, Controller controller) {
long completed;
ApplicationVersion lastApplication = application.deploymentJobs().statusOf(component).flatMap(JobStatus::lastSuccess).get().application();
- applicationVersionToSlime(lastApplicationObject.setObject("version"), lastApplication);
+ applicationVersionToSlime(lastApplicationObject.setObject("application"), lastApplication);
lastApplicationObject.setLong("at", application.deploymentJobs().statusOf(component).flatMap(JobStatus::lastSuccess).get().at().toEpochMilli());
completed = steps.productionJobs().stream().filter(type -> controller.applications().deploymentTrigger().isComplete(Change.of(lastApplication), application, type)).count();
if (Optional.of(lastApplication).equals(change.application()))
@@ -333,11 +333,12 @@ class JobControllerApiHandlerHelper {
}
private static void applicationVersionToSlime(Cursor versionObject, ApplicationVersion version) {
- versionObject.setString("id", version.id());
+ versionObject.setString("hash", version.id());
versionObject.setLong("build", version.buildNumber().getAsLong());
- versionObject.setString("repository", version.source().get().repository());
- versionObject.setString("branch", version.source().get().branch());
- versionObject.setString("commit", version.source().get().commit());
+ Cursor sourceObject = versionObject.setObject("source");
+ sourceObject.setString("gitRepository", version.source().get().repository());
+ sourceObject.setString("gitBranch", version.source().get().branch());
+ sourceObject.setString("gitCommit", version.source().get().commit());
}
/**
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializerTest.java
index 82aee3b3550..de9fe3f3dcc 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializerTest.java
@@ -30,12 +30,13 @@ import static com.yahoo.vespa.hosted.controller.deployment.Step.deactivateTester
import static com.yahoo.vespa.hosted.controller.deployment.Step.deployInitialReal;
import static com.yahoo.vespa.hosted.controller.deployment.Step.deployReal;
import static com.yahoo.vespa.hosted.controller.deployment.Step.deployTester;
+import static com.yahoo.vespa.hosted.controller.deployment.Step.endTests;
import static com.yahoo.vespa.hosted.controller.deployment.Step.installInitialReal;
import static com.yahoo.vespa.hosted.controller.deployment.Step.installReal;
import static com.yahoo.vespa.hosted.controller.deployment.Step.installTester;
import static com.yahoo.vespa.hosted.controller.deployment.Step.report;
import static com.yahoo.vespa.hosted.controller.deployment.Step.startTests;
-import static com.yahoo.vespa.hosted.controller.deployment.Step.endTests;
+import static java.time.temporal.ChronoUnit.MILLIS;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -97,7 +98,7 @@ public class RunSerializerTest {
.build(),
run.steps());
- run = run.aborted().finished(Instant.now());
+ run = run.aborted().finished(Instant.now().truncatedTo(MILLIS));
assertEquals(aborted, run.status());
assertTrue(run.hasEnded());
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 01f9ea9dfa0..f6b33940929 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,11 +2,7 @@ package com.yahoo.vespa.hosted.controller.restapi.application;
import com.yahoo.component.Version;
import com.yahoo.container.jdisc.HttpResponse;
-import com.yahoo.vespa.hosted.controller.api.application.v4.model.configserverbindings.ConfigChangeActions;
-import com.yahoo.vespa.hosted.controller.api.application.v4.model.configserverbindings.RefeedAction;
-import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException;
-import com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterCloud;
import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.ApplicationVersion;
import com.yahoo.vespa.hosted.controller.deployment.InternalDeploymentTester;
@@ -32,14 +28,10 @@ import static com.yahoo.vespa.hosted.controller.api.integration.deployment.JobTy
import static com.yahoo.vespa.hosted.controller.api.integration.deployment.TesterCloud.Status.FAILURE;
import static com.yahoo.vespa.hosted.controller.deployment.InternalDeploymentTester.appId;
import static com.yahoo.vespa.hosted.controller.deployment.JobController.testerOf;
-import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.aborted;
import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.deploymentFailed;
-import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.error;
import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.installationFailed;
import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.running;
import static com.yahoo.vespa.hosted.controller.deployment.RunStatus.testFailure;
-import static java.util.Collections.emptyList;
-import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
/**
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json
index b7a7dcbf796..a7c3135fbf3 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json
@@ -1,17 +1,19 @@
{
"lastVersions": {
"platform": {
- "version": "7.1",
+ "platform": "7.1",
"at": 0,
"pending": "Waiting for current deployment to complete"
},
"application": {
- "version": {
- "id": "1.0.3-commit1",
+ "application": {
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"at": 2000,
"deploying": "0 of 3 complete"
@@ -19,11 +21,13 @@
},
"deploying": {
"application": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
}
},
"deployments": [
@@ -32,11 +36,13 @@
"at": 2000,
"platform": "6.1",
"application": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"verified": false,
"status": "verifying"
@@ -47,11 +53,13 @@
"at": 1000,
"platform": "6.1",
"application": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"verified": false,
"status": "pending"
@@ -60,11 +68,13 @@
"at": 0,
"platform": "6.1",
"application": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"verified": true,
"status": "pending"
@@ -81,19 +91,23 @@
"end": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -109,19 +123,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -137,11 +155,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -159,19 +179,23 @@
"status": "pending",
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"cooldown": "failed"
@@ -185,19 +209,23 @@
"end": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {},
"log": "https://some.url:43/root/staging-test/run/4"
@@ -209,19 +237,23 @@
"end": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -237,19 +269,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -265,11 +301,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -289,19 +327,23 @@
"start": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -316,19 +358,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -344,11 +390,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -366,19 +414,23 @@
"status": "pending",
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"production-us-central-1": "running"
@@ -391,19 +443,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -419,11 +475,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
@@ -441,19 +499,23 @@
"status": "pending",
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"staging-test": "failed",
@@ -467,19 +529,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "failed"
@@ -493,11 +559,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"tasks": {
"deploy": "succeeded",
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-runs.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-runs.json
index 448411b3912..8c5e5253482 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-runs.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/staging-runs.json
@@ -6,11 +6,13 @@
"end": 0,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"steps": {
"deployInitialReal": "succeeded",
@@ -39,19 +41,23 @@
"end": 1000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"steps": {
"deployInitialReal": "succeeded",
@@ -80,19 +86,23 @@
"end": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.2-commit1",
+ "hash": "1.0.2-commit1",
"build": 2,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"steps": {
"deployInitialReal": "succeeded",
@@ -121,19 +131,23 @@
"end": 2000,
"wantedPlatform": "6.1",
"wantedApplication": {
- "id": "1.0.3-commit1",
+ "hash": "1.0.3-commit1",
"build": 3,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"currentPlatform": "6.1",
"currentApplication": {
- "id": "1.0.1-commit1",
+ "hash": "1.0.1-commit1",
"build": 1,
- "repository": "repository1",
- "branch": "master",
- "commit": "commit1"
+ "source": {
+ "gitRepository": "repository1",
+ "gitBranch": "master",
+ "gitCommit": "commit1"
+ }
},
"steps": {
"deployInitialReal": "succeeded",