diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-04-23 14:34:15 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-04-23 14:34:15 +0200 |
commit | 531d10e0fe8cf36f270aaa97c67d611e183ba9e1 (patch) | |
tree | f6f52c82d3a74f60130b663ce4a6f32fe8fb8b0a | |
parent | a3c3e97c0a70b6640ccb7937f873cd20cfa75da2 (diff) |
Reintroduce delay before first production job
2 files changed, 11 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index 21f37486470..25a1d19f1e1 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -95,7 +95,7 @@ public class DeploymentTrigger { * Called each time a job completes (successfully or not) to record information used when deciding what to trigger. */ public void notifyOfCompletion(JobReport report) { - log.log(LogLevel.INFO, String.format("Got notified of %s for %s of %s (%d).", + log.log(LogLevel.DEBUG, String.format("Got notified of %s for %s of %s (%d).", report.jobError().map(JobError::toString).orElse("success"), report.jobType(), report.applicationId(), @@ -277,7 +277,8 @@ public class DeploymentTrigger { : application.deploymentSpec().steps(); List<Step> productionSteps = steps.stream().filter(step -> step.deploysTo(prod) || step.zones().isEmpty()).collect(toList()); - Optional<Instant> completedAt = Optional.of(Instant.EPOCH); // Delays before first production job are ignored. + Optional<Instant> completedAt = application.deploymentJobs().statusOf(stagingTest) + .flatMap(JobStatus::lastSuccess).map(JobRun::at); String reason = "New change available"; List<Job> testJobs = null; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java index fc4b8cb9621..b2c109b1b2f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java @@ -120,6 +120,7 @@ public class DeploymentTriggerTest { ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .environment(Environment.prod) + .delay(Duration.ofSeconds(30)) .region("us-west-1") .delay(Duration.ofMinutes(2)) .delay(Duration.ofMinutes(2)) // Multiple delays are summed up @@ -134,6 +135,13 @@ public class DeploymentTriggerTest { tester.deployAndNotify(application, applicationPackage, true, JobType.systemTest); tester.deployAndNotify(application, applicationPackage, true, JobType.stagingTest); tester.deploymentTrigger().triggerReadyJobs(); + + // No jobs have started yet, as 30 seconds have not yet passed. + assertEquals(0, mockBuildService.jobs().size()); + tester.clock().advance(Duration.ofSeconds(30)); + tester.deploymentTrigger().triggerReadyJobs(); + + // 30 seconds later, the first jobs may trigger. assertEquals(1, mockBuildService.jobs().size()); tester.assertRunning(application.id(), productionUsWest1); |