diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2022-02-02 14:38:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-02 14:38:03 +0100 |
commit | 75267de23bf984de82f7412706c9492ec4bca007 (patch) | |
tree | 57668308c2590b8b3206b42d1282015168a299a9 /controller-server | |
parent | 8cc71f81b36d8f9d293336c6c32799a9f7eb784d (diff) | |
parent | 03b3e465d29e925e1d326310fd70d67becd83f9a (diff) |
Merge pull request #21025 from vespa-engine/olaa/differentiate-directly-deployed
Differentiate deployment method when clearing old app versions
Diffstat (limited to 'controller-server')
3 files changed, 8 insertions, 3 deletions
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 7156e4ac937..a5a1bb93225 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 @@ -87,6 +87,7 @@ import java.util.Optional; import java.util.Set; import java.util.TreeMap; import java.util.function.Consumer; +import java.util.function.Function; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -451,10 +452,12 @@ public class ApplicationController { .stream() .flatMap(instance -> instance.deployments().values().stream()) .map(Deployment::applicationVersion) + .filter(version -> !version.isDeployedDirectly()) .sorted() .findFirst() .orElse(ApplicationVersion.unknown); + var olderVersions = application.get().versions() .stream() .filter(version -> version.compareTo(oldestDeployedVersion) < 0) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index 4a3368a7228..7377f9ab1e5 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -229,13 +229,15 @@ public class ApplicationSerializer { } private void versionsToSlime(Application application, Cursor object) { - // Add all deployed versions as well + // Add all indirectly deployed versions as well + // Remove after all apps are updated application.instances() .values() .stream() .flatMap(instance -> instance.deployments().values().stream()) .map(Deployment::applicationVersion) .forEach(application.versions()::add); + application.versions().removeIf(ApplicationVersion::isDeployedDirectly); application.versions().forEach(version -> toSlime(version, object.addObject())); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index e7e54828a5d..320cf978e7f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -159,9 +159,9 @@ public class ApplicationSerializerTest { assertEquals(original.latestVersion().get().sourceUrl(), serialized.latestVersion().get().sourceUrl()); assertEquals(original.latestVersion().get().commit(), serialized.latestVersion().get().commit()); assertEquals(original.latestVersion().get().bundleHash(), serialized.latestVersion().get().bundleHash()); - // Check deployed versions are added + // Check indirectly deployed versions are added, directly deployed are removed assertEquals(original.versions(), serialized.versions()); - assertEquals(serialized.versions(), new TreeSet<>(Set.of(applicationVersion1, applicationVersion2))); + assertEquals(serialized.versions(), new TreeSet<>(Set.of(applicationVersion2))); assertEquals(original.deploymentSpec().xmlForm(), serialized.deploymentSpec().xmlForm()); |