diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-03-05 13:52:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-05 13:52:15 +0100 |
commit | 8ebd2842d4ec52dc834b714ac12a2a3869002864 (patch) | |
tree | d978996cd00403347f64c2df9dd4228777e711ba /controller-server | |
parent | c693842b7af3e1a0257673c54905c2c4a1eae24d (diff) | |
parent | cd5e03b2d823854d39dcd21f1e57587e1553506d (diff) |
Merge pull request #12456 from vespa-engine/jvenstad/suggest-newest-version-for-canary-instances
Suggest upgrade to newest version for canaries, in dep.view
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java index 085554eb3da..ef9779812a5 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java @@ -57,6 +57,7 @@ import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.yahoo.config.application.api.DeploymentSpec.UpgradePolicy.canary; import static com.yahoo.config.application.api.DeploymentSpec.UpgradePolicy.conservative; import static com.yahoo.config.application.api.DeploymentSpec.UpgradePolicy.defaultPolicy; import static com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType.stagingTest; @@ -612,7 +613,8 @@ class JobControllerApiHandlerHelper { Cursor latestVersionsObject = stepObject.setObject("latestVersions"); List<ChangeBlocker> blockers = application.deploymentSpec().requireInstance(stepStatus.instance()).changeBlocker(); - latestVersionPreferablyWithNormalConfidenceAndNotNewerThanSystem(controller.versionStatus().versions()) + latestVersionWithCompatibleConfidenceAndNotNewerThanSystem(controller.versionStatus().versions(), + application.deploymentSpec().requireInstance(stepStatus.instance()).upgradePolicy()) .ifPresent(latestPlatform -> { Cursor latestPlatformObject = latestVersionsObject.setObject("platform"); latestPlatformObject.setString("platform", latestPlatform.versionNumber().toFullString()); @@ -695,7 +697,8 @@ class JobControllerApiHandlerHelper { }); } - private static Optional<VespaVersion> latestVersionPreferablyWithNormalConfidenceAndNotNewerThanSystem(List<VespaVersion> versions) { + private static Optional<VespaVersion> latestVersionWithCompatibleConfidenceAndNotNewerThanSystem(List<VespaVersion> versions, + DeploymentSpec.UpgradePolicy policy) { int i; for (i = versions.size(); i-- > 0; ) if (versions.get(i).isSystemVersion()) @@ -704,8 +707,9 @@ class JobControllerApiHandlerHelper { if (i < 0) return Optional.empty(); + VespaVersion.Confidence required = policy == canary ? broken : normal; for (int j = i; j >= 0; j--) - if (versions.get(j).confidence().equalOrHigherThan(normal)) + if (versions.get(j).confidence().equalOrHigherThan(required)) return Optional.of(versions.get(j)); return Optional.of(versions.get(i)); |