diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-11-01 15:20:41 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2018-11-01 21:28:51 +0100 |
commit | 4c4448689fd8aa4db15da755c8b34477ae7071da (patch) | |
tree | 59e9e8554b32164690487d25aaddf0d26d9d1e0e /controller-server | |
parent | 6e612ff289ca82db4e4ff969917edba4cbab1eb1 (diff) |
Don't automatically trigger paused jobs
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java | 9 |
1 files changed, 5 insertions, 4 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 6dbdefb0913..9b060313d94 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 @@ -392,11 +392,12 @@ public class DeploymentTrigger { /** Returns whether the given job can trigger at the given instant */ public boolean triggerAt(Instant instant, JobType job, Versions versions, Application application) { Optional<JobStatus> jobStatus = application.deploymentJobs().statusOf(job); - if (!jobStatus.isPresent()) return true; + if ( ! jobStatus.isPresent()) return true; + if (jobStatus.get().pausedUntil().isPresent() && jobStatus.get().pausedUntil().getAsLong() > clock.instant().toEpochMilli()) return false; if (jobStatus.get().isSuccess()) return true; // Success - if (!jobStatus.get().lastCompleted().isPresent()) return true; // Never completed - if (!jobStatus.get().firstFailing().isPresent()) return true; // Should not happen as firstFailing should be set for an unsuccessful job - if (!versions.targetsMatch(jobStatus.get().lastCompleted().get())) return true; // Always trigger as targets have changed + if ( ! jobStatus.get().lastCompleted().isPresent()) return true; // Never completed + if ( ! jobStatus.get().firstFailing().isPresent()) return true; // Should not happen as firstFailing should be set for an unsuccessful job + if ( ! versions.targetsMatch(jobStatus.get().lastCompleted().get())) return true; // Always trigger as targets have changed if (application.deploymentSpec().upgradePolicy() == DeploymentSpec.UpgradePolicy.canary) return true; // Don't throttle canaries Instant firstFailing = jobStatus.get().firstFailing().get().at(); |