summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-03-07 21:19:32 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-03-07 21:19:32 +0100
commit176516af5d1c65cb87cab6d3c6b868b5318e6112 (patch)
treed0c8f4196c65612a082003dda5ea9408cb13a221 /controller-server
parent4948c924d6430463538ed86dba084f6bf9d9a8df (diff)
Prune packages and versions the same way
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java1
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java22
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java6
3 files changed, 11 insertions, 18 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
index ad63dd5b481..225ffacb1ad 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
@@ -216,6 +216,7 @@ public class Application {
public Optional<ApplicationVersion> oldestDeployedApplication() {
return productionDeployments().values().stream().flatMap(List::stream)
.map(Deployment::applicationVersion)
+ .filter(version -> ! version.isUnknown() && ! version.isDeployedDirectly())
.min(Comparator.naturalOrder());
}
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 88df49ad3ab..5c3c43461dc 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
@@ -446,21 +446,17 @@ public class ApplicationController {
controller.notificationsDb().removeNotifications(notification.source());
}
- var oldestDeployedVersion = application.get().productionDeployments().values().stream()
- .flatMap(List::stream)
- .map(Deployment::applicationVersion)
- .filter(version -> ! version.isDeployedDirectly())
- .min(naturalOrder())
- .orElse(ApplicationVersion.unknown);
-
- var olderVersions = application.get().versions().stream()
- .filter(version -> version.compareTo(oldestDeployedVersion) < 0)
- .sorted()
- .collect(Collectors.toList());
+ ApplicationVersion oldestDeployedVersion = application.get().oldestDeployedApplication()
+ .orElse(ApplicationVersion.unknown);
+
+ List<ApplicationVersion> olderVersions = application.get().versions().stream()
+ .filter(version -> version.compareTo(oldestDeployedVersion) < 0)
+ .sorted()
+ .collect(Collectors.toList());
// Remove any version not deployed anywhere - but keep one
- for (int i = 0; i < olderVersions.size() - 1; i++) {
- application = application.withoutVersion(olderVersions.get(i));
+ for (ApplicationVersion version : olderVersions) {
+ application = application.withoutVersion(version);
}
store(application);
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 66a30050f7a..647b52f7d51 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
@@ -607,11 +607,7 @@ public class JobController {
private void prunePackages(TenantAndApplicationId id) {
controller.applications().lockApplicationIfPresent(id, application -> {
- application.get().productionDeployments().values().stream()
- .flatMap(List::stream)
- .map(Deployment::applicationVersion)
- .filter(version -> ! version.isUnknown() && ! version.isDeployedDirectly())
- .min(naturalOrder())
+ application.get().oldestDeployedApplication()
.ifPresent(oldestDeployed -> {
controller.applications().applicationStore().prune(id.tenant(), id.application(), oldestDeployed);
controller.applications().applicationStore().pruneTesters(id.tenant(), id.application(), oldestDeployed);