summaryrefslogtreecommitdiffstats
path: root/controller-server/src
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-01-28 11:10:39 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2022-01-28 11:10:39 +0100
commit3161b9bc70f9dce6519e628267300e81cda2e0f6 (patch)
tree2c4b08f3d4c4256d3a7e2f06f35d9c53483b520d /controller-server/src
parent976d5618dd512ee46c8b6bc0ce22834b65d9773a (diff)
Decide version removal based on oldest deployed
Diffstat (limited to 'controller-server/src')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java14
1 files changed, 8 insertions, 6 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 54027d93d77..7156e4ac937 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
@@ -445,23 +445,25 @@ public class ApplicationController {
controller.notificationsDb().removeNotifications(notification.source());
}
- var existingVersions = application.get()
+ var oldestDeployedVersion = application.get()
.instances()
.values()
.stream()
.flatMap(instance -> instance.deployments().values().stream())
.map(Deployment::applicationVersion)
- .collect(Collectors.toSet());
+ .sorted()
+ .findFirst()
+ .orElse(ApplicationVersion.unknown);
- var oldVersions = application.get().versions()
+ var olderVersions = application.get().versions()
.stream()
- .filter(version -> !existingVersions.contains(version))
+ .filter(version -> version.compareTo(oldestDeployedVersion) < 0)
.sorted()
.collect(Collectors.toList());
// Remove any version not deployed anywhere - but keep one
- for (int i = 0; i < oldVersions.size() - 1; i++) {
- application = application.withoutVersion(oldVersions.get(i));
+ for (int i = 0; i < olderVersions.size() - 1; i++) {
+ application = application.withoutVersion(olderVersions.get(i));
}
store(application);