summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-03-17 17:04:19 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-03-17 17:04:19 +0100
commitfb917b6b2694a73a94b5a5737f1d5e553aa4d2f3 (patch)
tree9d889f705fe34b1a98fdd7387e3e799e986efb7b /controller-server
parent764f5ac4b47b2d4c9dde33bee4f4d015a1d73f61 (diff)
If current dev deployments exist, use its timestamp, to avoid reading job data
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java22
1 files changed, 14 insertions, 8 deletions
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 323101088cd..df9491c5d22 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
@@ -2143,15 +2143,21 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
private void tenantMetaDataToSlime(Tenant tenant, List<Application> applications, Cursor object) {
Optional<Instant> lastDev = applications.stream()
- .flatMap(application -> application.instances().values().stream())
- .flatMap(instance -> JobType.allIn(controller.system()).stream()
- .filter(job -> job.environment() == Environment.dev)
- .flatMap(jobType -> controller.jobController().last(instance.id(), jobType).stream()))
- .map(Run::start)
- .max(Comparator.naturalOrder());
+ .flatMap(application -> application.instances().values().stream())
+ .flatMap(instance -> instance.deployments().values().stream())
+ .filter(deployment -> deployment.zone().environment() == Environment.dev)
+ .map(Deployment::at)
+ .max(Comparator.naturalOrder())
+ .or(() -> applications.stream()
+ .flatMap(application -> application.instances().values().stream())
+ .flatMap(instance -> JobType.allIn(controller.system()).stream()
+ .filter(job -> job.environment() == Environment.dev)
+ .flatMap(jobType -> controller.jobController().last(instance.id(), jobType).stream()))
+ .map(Run::start)
+ .max(Comparator.naturalOrder()));
Optional<Instant> lastSubmission = applications.stream()
- .flatMap(app -> app.latestVersion().flatMap(ApplicationVersion::buildTime).stream())
- .max(Comparator.naturalOrder());
+ .flatMap(app -> app.latestVersion().flatMap(ApplicationVersion::buildTime).stream())
+ .max(Comparator.naturalOrder());
object.setLong("createdAtMillis", tenant.createdAt().toEpochMilli());
lastDev.ifPresent(instant -> object.setLong("lastDeploymentToDevMillis", instant.toEpochMilli()));
lastSubmission.ifPresent(instant -> object.setLong("lastSubmissionToProdMillis", instant.toEpochMilli()));