diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-09-24 11:42:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-24 11:42:20 +0200 |
commit | f1707e50e0d7c3d4792db2f39ef2845f665704eb (patch) | |
tree | 55a71bbb0e98639f71e3c30d92b3ce9a0cf8da68 /controller-server/src | |
parent | 46f7e65b08c7ac7f7da5f3561af83f15772bd03c (diff) | |
parent | 8c6369d5c14cc3c7e7504ffdeb14f07566870364 (diff) |
Merge pull request #14520 from vespa-engine/jonmv/detect-more-relevant-runs-as-relevant
Jonmv/detect more relevant runs as relevant
Diffstat (limited to 'controller-server/src')
3 files changed, 6 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 d39e0c134fd..709064c8715 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 @@ -107,7 +107,9 @@ public class DeploymentTrigger { Map<JobId, List<Versions>> newJobsToRun = jobs.deploymentStatus(application.get()).jobsToRun(); for (Run run : jobs.active(application.get().id().instance(instanceName))) { if ( ! run.id().type().environment().isManuallyDeployed() - && ! newJobsToRun.getOrDefault(run.id().job(), List.of()).contains(run.versions())) + && newJobsToRun.getOrDefault(run.id().job(), List.of()).stream() + .noneMatch(versions -> versions.targetsMatch(run.versions()) + && versions.sourcesMatchIfPresent(run.versions()))) jobs.abort(run.id()); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java index 7a0349d7737..a05b3425a01 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/Versions.java @@ -58,9 +58,9 @@ public class Versions { /** Returns whether source versions are present and match those of the given job other versions. */ public boolean sourcesMatchIfPresent(Versions versions) { - return (sourcePlatform.filter(version -> ! version.equals(targetPlatform)).isEmpty() || + return (sourcePlatform.map(targetPlatform::equals).orElse(true) || sourcePlatform.equals(versions.sourcePlatform())) && - (sourceApplication.filter(version -> ! version.equals(targetApplication)).isEmpty() || + (sourceApplication.map(targetApplication::equals).orElse(true) || sourceApplication.equals(versions.sourceApplication())); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java index e0f2f0718ef..e5ee06f81dd 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java @@ -74,7 +74,7 @@ public class JobRunner extends ControllerMaintainer { /** Advances each of the ready steps for the given run, or marks it as finished, and stashes it. Public for testing. */ public void advance(Run run) { if ( ! run.hasFailed() - && run.start().isBefore(controller().clock().instant().minus(jobTimeout))) { + && controller().clock().instant().isAfter(run.start().plus(jobTimeout))) { jobs.abort(run.id()); advance(jobs.run(run.id()).get()); } |