summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-11-10 07:52:11 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-11-10 07:52:11 +0100
commit9cb8d3cc637f14c149775c9bc0dc61d454f79044 (patch)
tree243f29528159883d2987cb20710af43e5d8874eb /controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
parent45faccac4b511034f72be16ac6b86325f123a911 (diff)
Move pruning to separate method
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.java21
1 files changed, 13 insertions, 8 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..08fd61a626a 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);
@@ -355,6 +348,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)) {