diff options
author | HÃ¥kon Hallingstad <hakon.hallingstad@gmail.com> | 2022-10-03 09:22:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-03 09:22:49 +0200 |
commit | fc64c6d79ff86e5368cff3f71677e96abe6e93d0 (patch) | |
tree | fff69b3f98710196850abd5fd2ddedf74d9ec48c | |
parent | 8384dc33d95317f2e66e2708e6e7ce531c326b69 (diff) | |
parent | 759565a40acf17ba4b67834075865d3b76e8e32e (diff) |
Merge pull request #24282 from vespa-engine/jonmv/publicly-released-versions-have-had-high-confidence
Releases in public imply high confidence
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java index 92ebc5b7177..19775ef420d 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java @@ -391,15 +391,23 @@ public class ApplicationController { .map(VespaVersion::versionNumber) .filter(systemCompatible) .max(naturalOrder()); - if (nonBroken.isPresent()) return nonBroken.get(); - // Fall back to the newest, system-compatible version with unknown confidence. + // Fall back to the newest, system-compatible version with unknown confidence. For public systems, this implies high confidence. Set<Version> knownVersions = versionStatus.versions().stream().map(VespaVersion::versionNumber).collect(toSet()); Optional<Version> unknown = controller.mavenRepository().metadata().versions().stream() .filter(version -> ! knownVersions.contains(version)) .filter(systemCompatible) .max(naturalOrder()); - if (unknown.isPresent()) return unknown.get(); + + if (nonBroken.isPresent()) { + if (controller.system().isPublic() && unknown.isPresent() && unknown.get().isAfter(nonBroken.get())) + return unknown.get(); + + return nonBroken.get(); + } + + if (unknown.isPresent()) + return unknown.get(); throw new IllegalArgumentException("no suitable, released compile version exists" + (wantedMajor.isPresent() ? " for specified major: " + wantedMajor.getAsInt() : "")); |