summaryrefslogtreecommitdiffstats
path: root/controller-server/src
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-11-08 17:04:34 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-11-08 17:04:34 +0100
commitd7dab853b75f42002bb73192a9b2c85816e36ae2 (patch)
tree85a93afb947b71b44baa4aaee84019cb782a14be /controller-server/src
parente7a1e1c0236c7e58093ef5d08793a7ec957ecd0d (diff)
Actually do the GC
Diffstat (limited to 'controller-server/src')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java10
1 files changed, 10 insertions, 0 deletions
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 18ae1274553..26d9e303794 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
@@ -24,6 +24,7 @@ import com.yahoo.vespa.hosted.controller.persistence.CuratorDb;
import java.net.URI;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -225,6 +226,7 @@ public class JobController {
AtomicReference<ApplicationVersion> version = new AtomicReference<>();
controller.applications().lockOrThrow(id, application -> {
if ( ! application.get().deploymentJobs().deployedInternally()) {
+ // TODO jvenstad: Remove when there are no more SDv3 pipelines.
// Copy all current packages to the new application store
application.get().deployments().values().stream()
.map(Deployment::applicationVersion)
@@ -245,6 +247,14 @@ public class JobController {
version.get(),
testPackageBytes);
+ application.get().deployments().values().stream()
+ .map(Deployment::applicationVersion)
+ .min(Comparator.comparingLong(applicationVersion -> applicationVersion.buildNumber().getAsLong()))
+ .ifPresent(oldestDeployed -> {
+ controller.applications().applicationStore().pruneApplicationPackages(id, oldestDeployed);
+ controller.applications().applicationStore().pruneTesterPackages(id, oldestDeployed);
+ });
+
controller.applications().storeWithUpdatedConfig(application.withBuiltInternally(true), new ApplicationPackage(packageBytes));
notifyOfNewSubmission(id, projectId, revision, run);