diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2018-01-09 08:44:24 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2018-01-09 08:44:24 +0100 |
commit | 7f1ebe072787328b1de778a3aa7d8c6e9a7cd01b (patch) | |
tree | 3e70100af3dc9dd86d99104151ff89cca66add33 /controller-server | |
parent | 28f913781b951fb959c3ae388cb2f74500b63432 (diff) |
Only progress if the previous job succeeds
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java | 20 |
1 files changed, 8 insertions, 12 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 9cee3e4c572..87935c1ee23 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 @@ -215,12 +215,12 @@ public class DeploymentTrigger { if (change instanceof Change.VersionChange) { // Propagate upgrade while making sure we never downgrade Version targetVersion = ((Change.VersionChange)change).version(); - if (next.type().isTest()) { - // Is it this job's turn to upgrade? - if ( previous != null && ! lastSuccessfulIs(targetVersion, previous.type(), application)) - return false; + // Is it not yet this job's turn to upgrade? + if ( ! lastSuccessfulIs(targetVersion, previous.type(), application)) + return false; - // Has the upgrade already been done? + if (next.type().isTest()) { + // Has the upgrade test already been done? if (lastSuccessfulIs(targetVersion, next.type(), application)) return false; } @@ -229,10 +229,6 @@ public class DeploymentTrigger { if ( ! lastSuccessfulIs(targetVersion, JobType.stagingTest, application)) return false; - // Is it this job's turn to upgrade? - if ( previous.type().isProduction() && ! isOnAtLeastProductionVersion(targetVersion, application, previous.type())) - return false; - // Is the next a production job for a zone already upgraded to this version or a newer one? if (isOnAtLeastProductionVersion(targetVersion, application, next.type())) return false; @@ -421,9 +417,9 @@ public class DeploymentTrigger { private boolean lastSuccessfulIs(Version version, JobType jobType, Application application) { JobStatus status = application.deploymentJobs().jobStatus().get(jobType); if (status == null) return false; - Optional<JobStatus.JobRun> lastSuccessfulStagingRun = status.lastSuccess(); - if ( ! lastSuccessfulStagingRun.isPresent()) return false; - return lastSuccessfulStagingRun.get().version().equals(version); + Optional<JobStatus.JobRun> lastSuccessfulRun = status.lastSuccess(); + if ( ! lastSuccessfulRun.isPresent()) return false; + return lastSuccessfulRun.get().version().equals(version); } } |