summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java23
1 files changed, 13 insertions, 10 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 da98dd0e165..480e7b3b0fe 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
@@ -248,14 +248,7 @@ 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().prune(id, oldestDeployed);
- controller.applications().applicationStore().prune(TesterId.of(id), oldestDeployed);
- });
-
+ prunePackages(id);
controller.applications().storeWithUpdatedConfig(application.withBuiltInternally(true), new ApplicationPackage(packageBytes));
notifyOfNewSubmission(id, projectId, revision, run);
@@ -304,8 +297,6 @@ public class JobController {
logs.delete(id);
}
});
- controller.applications().applicationStore().removeAll(id);
- controller.applications().applicationStore().removeAll(tester);
}
catch (TimeoutException e) {
return; // Don't remove the data if we couldn't clean up all resources.
@@ -355,6 +346,18 @@ public class JobController {
controller.applications().deploymentTrigger().notifyOfCompletion(report);
}
+ private void prunePackages(ApplicationId id) {
+ controller.applications().lockIfPresent(id, application -> {
+ application.get().deployments().values().stream()
+ .map(Deployment::applicationVersion)
+ .min(Comparator.comparingLong(applicationVersion -> applicationVersion.buildNumber().getAsLong()))
+ .ifPresent(oldestDeployed -> {
+ controller.applications().applicationStore().prune(id, oldestDeployed);
+ controller.applications().applicationStore().prune(TesterId.of(id), oldestDeployed);
+ });
+ });
+ }
+
/** Locks and modifies the list of historic runs for the given application and job type. */
private void locked(ApplicationId id, JobType type, Consumer<SortedMap<RunId, Run>> modifications) {
try (Lock __ = curator.lock(id, type)) {