From 9cb8d3cc637f14c149775c9bc0dc61d454f79044 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Sat, 10 Nov 2018 07:52:11 +0100 Subject: Move pruning to separate method --- .../hosted/controller/deployment/JobController.java | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'controller-server/src') 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> modifications) { try (Lock __ = curator.lock(id, type)) { -- cgit v1.2.3