diff options
Diffstat (limited to 'controller-server')
4 files changed, 11 insertions, 6 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/InstanceList.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/InstanceList.java index 1354f173633..95e9c3d945b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/InstanceList.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/InstanceList.java @@ -74,7 +74,7 @@ public class InstanceList extends AbstractFilteringList<ApplicationId, InstanceL /** Returns the subset of instances that has completed deployment of given change */ public InstanceList hasCompleted(Change change) { - return matching(id -> instances.get(id).jobsToRun(Map.of(id.instance(), change)).isEmpty()); + return matching(id -> instances.get(id).hasCompleted(id.instance(), change)); } /** Returns the subset of instances which are currently deploying a change */ diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java index 4f546081c07..ee9d6eaa55b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentStatus.java @@ -216,7 +216,12 @@ public class DeploymentStatus { } /** The set of jobs that need to run for the given changes to be considered complete. */ - public Map<JobId, List<Job>> jobsToRun(Map<InstanceName, Change> changes) { + public boolean hasCompleted(InstanceName instance, Change change) { + return jobsToRun(Map.of(instance, change), false).isEmpty(); + } + + /** The set of jobs that need to run for the given changes to be considered complete. */ + private Map<JobId, List<Job>> jobsToRun(Map<InstanceName, Change> changes) { return jobsToRun(changes, false); } @@ -263,7 +268,7 @@ public class DeploymentStatus { .noneMatch(deployment -> deployment.applicationVersion().compareTo(version) > 0)) .map(Change::of) .filter(change -> application.require(instance).change().application().map(change::upgrades).orElse(true)) - .filter(change -> ! jobsToRun(Map.of(instance, change)).isEmpty()) + .filter(change -> ! hasCompleted(instance, change)) .findFirst()) .orElse(Change.empty()); } 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 64f879a3a5c..a54f40c94b8 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 @@ -398,9 +398,9 @@ public class DeploymentTrigger { private Instance withRemainingChange(Instance instance, Change change, DeploymentStatus status) { Change remaining = change; - if (status.jobsToRun(Map.of(instance.name(), change.withoutApplication())).isEmpty()) + if (status.hasCompleted(instance.name(), change.withoutApplication())) remaining = remaining.withoutPlatform(); - if (status.jobsToRun(Map.of(instance.name(), change.withoutPlatform())).isEmpty()) { + if (status.hasCompleted(instance.name(), change.withoutPlatform())) { remaining = remaining.withoutApplication(); if (change.application().isPresent()) instance = instance.withLatestDeployed(change.application().get()); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java index 5f9f0aeb64c..60c41ef520d 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java @@ -114,7 +114,7 @@ public class JobController { public void updateStorage() { for (ApplicationId id : instances()) for (JobType type : jobs(id)) { - locked(id, type, runs -> { // runs is not modified here, and is written as it was. + locked(id, type, runs -> { // Runs are not modified here, and are written as they were. curator.readLastRun(id, type).ifPresent(curator::writeLastRun); }); } |