aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-02-07 13:33:33 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-02-07 13:33:33 +0100
commitf4f8f0959f956e22b4fb68f940cac4db31912193 (patch)
tree9bd8ccecd8524b1ddd3ef825360af17025ecdce6
parentb39b11118f85fb2b2f2a7951204311e96ed0faec (diff)
Make sure not to display newer Vespa versions than the system version
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java22
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json4
2 files changed, 20 insertions, 6 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 ff1e1a8f151..339facec231 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
@@ -592,10 +592,7 @@ class JobControllerApiHandlerHelper {
Cursor latestVersionsObject = stepObject.setObject("latestVersions");
List<ChangeBlocker> blockers = application.deploymentSpec().requireInstance(stepStatus.instance()).changeBlocker();
- controller.versionStatus().versions().stream()
- .filter(version -> version.confidence().equalOrHigherThan(normal))
- .max(naturalOrder())
- .or(() -> controller.versionStatus().versions().stream().filter(VespaVersion::isSystemVersion).findAny())
+ latestVersionPreferablyWithNormalConfidenceNAndotNewerThanSystem(controller.versionStatus().versions())
.ifPresent(latestPlatform -> {
Cursor latestPlatformObject = latestVersionsObject.setObject("platform");
latestPlatformObject.setString("platform", latestPlatform.versionNumber().toFullString());
@@ -692,5 +689,22 @@ class JobControllerApiHandlerHelper {
blockerObject.setString("zone", blocker.window().zone().toString());
});
}
+
+ private static Optional<VespaVersion> latestVersionPreferablyWithNormalConfidenceNAndotNewerThanSystem(List<VespaVersion> versions) {
+ int i;
+ for (i = versions.size(); i-- > 0; )
+ if (versions.get(i).isSystemVersion())
+ break;
+
+ if (i < 0)
+ return Optional.empty();
+
+ for (int j = i; j >= 0; j--)
+ if (versions.get(j).confidence().equalOrHigherThan(normal))
+ return Optional.of(versions.get(j));
+
+ return Optional.of(versions.get(i));
+ }
+
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json
index 3be78c294c7..e75ebc923bd 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json
@@ -18,7 +18,7 @@
},
"latestVersions": {
"platform": {
- "platform": "7.164.0",
+ "platform": "6.1.0",
"at": "(ignore)",
"upgrade": false,
"blockers": []
@@ -505,7 +505,7 @@
"deploying": {},
"latestVersions": {
"platform": {
- "platform": "7.164.0",
+ "platform": "6.1.0",
"at": "(ignore)",
"upgrade": false,
"blockers": []