summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2018-01-09 08:44:24 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2018-01-09 08:44:24 +0100
commit7f1ebe072787328b1de778a3aa7d8c6e9a7cd01b (patch)
tree3e70100af3dc9dd86d99104151ff89cca66add33 /controller-server
parent28f913781b951fb959c3ae388cb2f74500b63432 (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.java20
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);
}
}